Hệ thống này hỗ trợ sinh viên ôn tập, tra cứu, tự đánh giá kiến thức của mình về môn nhập môn lập trình thông qua việc thực hiện các đề thi được tạo ra với nhiều tùy chọn về số lượng, mứ
Trang 1- ∞0∞ -
NGUYỄN TRƯỜNG HẢI
HỆ HỖ TRỢ KIỂM TRA, ĐÁNH GIÁ KIẾN THỨC
VỀ NHẬP MÔN LẬP TRÌNH
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
TP HỒ CHÍ MINH, NĂM 2020
Trang 2TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH
- ∞0∞ -
NGUYỄN TRƯỜNG HẢI
HỆ HỖ TRỢ KIỂM TRA, ĐÁNH GIÁ KIẾN THỨC
VỀ NHẬP MÔN LẬP TRÌNH
Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Giảng viên hướng dẫn: PGS TS ĐỖ VĂN NHƠN
TP HỒ CHÍ MINH, NĂM 2020
Trang 3Tôi tên là: NGUYỄN TRƯỜNG HẢI
Ngày sinh: 04/07/1991 Nơi sinh: Tiền Giang
Chuyên ngành: Khoa học máy tính Mã học viên: 1784801010007
Tôi đồng ý cung cấp toàn văn thông tin luận văn tốt nghiệp hợp lệ về bản quyền cho Thư viện trường đại học Mở Thành phố Hồ Chí Minh Thư viện trường đại học Mở Thành phố Hồ Chí Minh sẽ kết nối toàn văn thông tin luận văn tốt nghiệp vào hệ thống thông tin khoa học của Sở Khoa học và Công nghệ Thành phố Hồ Chí Minh
Nguyễn Trường Hải
Trang 5LỜI CAM ĐOAN
Tôi cam đoan rằng luận văn “Hệ hỗ trợ kiểm tra, đánh giá kiến thức về nhập môn lập trình” là bài nghiên cứu của chính tôi
Ngoại trừ những tài liệu tham khảo được trích dẫn trong luận văn này, tôi cam đoan rằng toàn phần hay những phần nhỏ của luận văn này chưa từng được công bố hoặc được sử dụng để nhận bằng cấp ở những nơi khác
Không có sản phẩm/nghiên cứu nào của người khác được sử dụng trong luận văn này mà không được trích dẫn theo đúng quy định
Luận văn này chưa bao giờ được nộp để nhận bất kỳ bằng cấp nào tại các trường đại học hoặc cơ sở đào tạo khác
TP Hồ Chí Minh, năm 2020
Nguyễn Trường Hải
Trang 6LỜI CẢM ƠN
Lời đầu tiên, em xin trân trọng và gửi lời cảm ơn sâu sắc đến quý lãnh đạo,
quý thầy cô Trường Đại học Mở Thành phố Hồ Chí Minh, khoa Đào tạo sau đại học,
khoa Công nghệ thông tin, quý thầy cô bộ môn đã tận tình chỉ bảo và giảng dạy em
trong suốt thời gian em học tập tại trường đồng thời tạo điều kiện để em thực hiện đề
tài này
Bên cạnh đó em cũng xin bài tỏ lòng biết ơn chân thành đến giáo viên hướng
dẫn PGS.TS Đỗ Văn Nhơn, người thầy đã luôn tận tâm chỉ bảo và hướng dẫn em
trong suốt thời gian thực hiện luận văn này Vì kiến thức còn hạn chế, em đã gặp rất
nhiều khó khăn khi thực hiện đề tài, nhưng may mắn được thầy động viên và dẫn dắt,
thầy đã cho em nghị lực, niềm tin để em tiếp tục con đường nghiên cứu của mình
Con cũng không quên ghi khắc lòng biết ơn và kính trọng đến gia đình, cha
mẹ đã cho con hậu phương, chỗ dựa tinh thần và luôn ủng hộ con trên con đường học
tập, tìm kiếm tri thức Xin cảm ơn tất cả bạn bè, đồng nghiệp đã tư vấn, đóng góp cho
tôi những ý kiến quý báu để tôi làm cơ sở khắc phục thiếu sót và hoàn thành nhiệm
vụ học tập, nghiên cứu này
Xin gửi lời tri ân!
Học viên
Nguyễn Trường Hải
Trang 7TÓM TẮT
Trắc nghiệm khách quan là một trong những hình thức kiểm tra, đánh giá kết quả học tập phổ biến trong các cấp học từ phổ thông đến cao đẳng, đại học Hình thức này đã được áp dụng trong rất nhiều lĩnh vực từ khoa học tự nhiên đến khoa học xã hội Với xu thế hiện đại và sự phát triển không ngừng của công nghệ thông tin cũng như định hướng tin học hóa giáo dục, kiểm tra, đánh giá bằng hình thức trắc nghiệm trên máy tính ngày càng trở nên phổ biến Theo đó, các ứng dụng thi trắc nghiệm trên máy tính cũng ngày càng đa dạng, phong phú
Tuy nhiên, các ứng dụng thi trắc nghiệm hiện nay chỉ tạo ra các đề thi tự động dựa trên các tham số đầu vào như số lượng câu hỏi, thời gian và cho ra điểm sau khi kết thúc bài thi mà không thể đánh giá mức độ hiểu biết của người dùng, không thể định hướng những nội dung kiến thức mà người dùng cần phải cập nhật thông qua bài kiểm tra
Đề tài luận văn này đã nghiên cứu và xây dựng một hệ thống hỗ trợ kiểm tra, đánh giá kiến thức về nhập môn lập trình, một trong những môn học bắt buộc đối với tất cả các sinh viên ngành công nghệ thông tin Hệ thống này hỗ trợ sinh viên ôn tập, tra cứu, tự đánh giá kiến thức của mình về môn nhập môn lập trình thông qua việc thực hiện các đề thi được tạo ra với nhiều tùy chọn về số lượng, mức độ khó, yếu tố kiến thức cần kiểm tra, đánh giá
Hơn thế nữa, hệ thống này còn có thể đánh giá mức độ hiểu biết của sinh viên đối với từng yếu tố kiến thức, đề xuất định hướng những nội dung kiến thức mà sinh viên cần phải cập nhật, cải thiện thông qua phân tích kết quả bài thi Từ đó làm cơ sở cho sinh viên học tập, hoàn thiện kiến thức môn học
Trang 8Objective test, one of the forms of testing and evaluating learning results, is widely used in all educational levels from high school to college and university It has been applied in many fields from natural to social sciences With the modern trend and the continuous development of information technology as well as the orientation of computerized education, computer-based testing and evaluating is becoming more and more popular And that is the reason why application for multiple choice tests on computers are more diverse and rich
The application of multiple choice tests, however, only creates automated exams based on input parameters such as the number of questions, times and scores after the end of the test This cannot assess the user’s level of knowledge as well as direct the knowledge content that the users need to update through the test
This thesis has researched and built a support system for the knowledge test and evaluation about Introduction to Programming, one of the compulsory subjects for all students of information technology This system supports students to review, look up, and self-assess their knowledge of the Introduction to Programming course through exam questions created with many options such as number of questions, difficulty levels, and the knowledge factors which should be tested and evaluated
Besides this system can also assess the student's understanding of each element
of knowledge, propose orientation of knowledge content that students need to update and improve through analysing test results And it can also be considered as a basis for students to learn and improve subject knowledge as well
Trang 9MỤC LỤC
Contents
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT iii
MỤC LỤC iv
DANH MỤC HÌNH vi
DANH MỤC BẢNG VÀ SƠ ĐỒ vii
CHƯƠNG 1: GIỚI THIỆU VỀ ĐỀ TÀI 1
1.1 Tổng quan và đặt vấn đề 1
1.2 Mục tiêu nghiên cứu và phạm vi đề tài 3
1.3 Phương pháp và ý nghĩa luận văn 6
1.4 Kết cấu luận văn 6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 8
2.1 Biểu diễn tri thức và hệ cơ sở tri thức [4] [8] [10] 8
2.2 Các phương pháp biểu diễn tri thức cơ bản [4] [8] 9
2.2.1 Phương pháp biểu diễn dựa trên logic hình thức 10
2.2.2 Phương pháp biểu diễn tri thức thủ tục (hệ luật dẫn) 10
2.2.3 Phương pháp biểu diễn tri thức dạng mạng 11
2.2.4 Phương pháp biểu diễn tri thức theo cấu trúc 12
2.3 Phương pháp biểu diễn tri thức dựa trên Ontology 12
2.3.1 Một số vấn đề cơ bản về ontology 12
2.3.2 Các thành phần cơ bản của ontology [4] [8] 14
2.3.3 Phân loại ontology [4] [8] 15
2.4 Phương pháp kiểm tra, đánh giá bằng trắc nghiệm khách quan 16
2.4.1 Các phương pháp kiểm tra, đánh giá kết quả học tập thường dùng 16
2.4.2 Đôi nét về phương pháp trắc nghiệm khách quan [15] [19] 18
2.4.3 Độ khó của câu trắc nghiệm và độ khó của đề kiểm tra, đánh giá 20
CHƯƠNG 3: THIẾT KẾ CƠ SỞ TRI THỨC, MÔ HÌNH HÓA YÊU CẦU VÀ XÂY DỰNG THUẬT GIẢI 22
3.1 Mô hình tri thức nhập môn lập trình tiếp cận Ontology 22
Trang 103.2 Mô hình cho ngân hàng câu hỏi trắc nghiệm và việc thu thập 25
3.2.1 Mô hình của 1 câu hỏi trắc nghiệm 25
3.2.2 Mô hình ngân hàng câu hỏi trắc nghiệm 26
3.2.3 Thu thập và xây dựng ngân hàng câu hỏi trắc nghiệm 26
3.3 Bảng liên kết giữa câu hỏi trắc nghiệm và yếu tố kiến thức 27
3.4 Tổ chức lưu trữ cơ sở dữ liệu và tri thức của hệ thống 28
3.4.1 Các bảng dữ liệu 28
3.4.2 Mô tả các bảng dữ liệu 29
3.5 Xác định yêu cầu và xây dựng thuật giải 31
3.5.1 Sơ đồ chức năng của hệ thống 31
3.5.2 Quản lí dữ liệu 31
3.5.3 Tìm kiếm 40
3.5.4 Tạo đề thi 42
3.5.5 Làm bài thi và nhận xét, đánh giá kết quả 47
CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ 53
4.1 Cài đặt một số tác vụ chính 53
4.1.1 Tác vụ quản lý người dùng 53
4.1.2 Tác vụ Tra cứu kiến thức 55
4.1.3 Tác vụ Tra cứu câu hỏi 57
4.1.4 Tác vụ tạo đề kiểm tra, đánh giá 59
4.1.5 Tác vụ làm bài thi và nhận xét đánh giá kết quả bài thi 61
4.1.6 Tác vụ xem lại nhận xét đánh giá nhằm theo dõi quá trình học tập 65
4.2 Thử nghiệm 66
4.2.1 Thử nghiệm tác vụ tạo đề 66
4.2.2 Thử nghiệm tác vụ làm bài thi và nhận xét, đánh giá 69
4.2.3 So sánh mức độ hỗ trợ của một số ứng dụng thi trắc nghiệm 80
4.3 Đánh giá 81
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82
5.1 Kết quả đạt được 82
5.2 Hạn chế và hướng phát triển 83
TÀI LIỆU THAM KHẢO 85
Trang 11DANH MỤC HÌNH
Hình 4.1 Giao diện đăng nhập vào hệ thống 53
Hình 4.2 Giao diện người dùng với quyền quản lý 54
Hình 4.3 Giao diện người dùng với quyền giáo viên 54
Hình 4.4 Giao diện người dùng với quyền sinh viên 55
Hình 4.5 Giao diện quản lý hệ thống 55
Hình 4.6 Giao diện tra cứu kiến thức 56
Hình 4.7 Thử nghiệm thao tác tra cứu kiến thức 57
Hình 4.8 Giao diện tìm kiếm câu hỏi trắc nghiệm theo kiến thức 58
Hình 4.9 Thử nghiệm thao tác tìm kiếm câu hỏi trắc nghiệm 58
Hình 4.10 Giao diện tạo đề kiểm tra, đánh giá ngẫu nhiên 59
Hình 4.11 Giao diện tạo đề kiểm tra, đánh giá theo yếu tố kiến thức 60
Hình 4.12 Thử nghiệm thao tác tạo đề kiểm tra, đánh giá kiến thức 61
Hình 4.13 Giao diện làm bài kiểm tra, đánh giá kiến thức 62
Hình 4.14 Giao diện kết quả bài kiểm tra, đánh giá kiến thức 63
Hình 4.15 Thử nghiệm thao tác làm bài kiểm tra, đánh giá kiến thức 64
Hình 4.16 Giao diện hiển thị kết quả và nhận xét đánh giá bài làm 64
Hình 4.17 Giao diện hiển thị thông tin kết quả các bài làm của sinh viên 65
Biểu đồ 4.1 Kết quả kiểm tra, đánh giá với các đề thi có độ khó khác nhau 69
Biểu đồ 4.2 Biểu đồ thể hiện sự thay đổi về số lượng đề thi có câu sai thuộc kiến thức về Các kiểu dữ liệu cơ sở 78
Biểu đồ 4.3 Biểu đồ thể hiện sự thay đổi về số lượng đề thi có câu sai thuộc kiến thức về Biến 78
Biểu đồ 4.4 Biểu đồ thể hiện sự thay đổi về số lượng đề thi có câu sai thuộc kiến thức về Lệnh 79
Biểu đồ 4.5 Biểu đồ thể hiện sự thay đổi về số lượng đề thi có câu sai thuộc kiến thức về Các toán tử và biểu thức 79
Trang 12DANH MỤC BẢNG VÀ SƠ ĐỒ
Sơ đồ 3.1 Sơ đồ mô hình tri thức nhập môn lập trình 23
Bảng 3.1 Bảng dữ liệu lưu trữ cây tri thức về nhập môn lập trình 24
Bảng 3.2 Bảng dữ liệu lưu trữ ngân hàng câu hỏi trắc nghiệm 26
Bảng 3.3 Bảng dữ liệu lưu trữ liên kết kiến thức 27
Sơ đồ 3.2 Lưu đồ thuật toán thêm yếu tố kiến thức 33
Sơ đồ 3.3 Lưu đồ thuật toán chỉnh sửa thông tin một yếu tố kiến thức 35
Sơ đồ 3.4 Lưu đồ thuật toán xóa yếu tố kiến thức 37
Sơ đồ 3.5 Lưu đồ thuật toán thêm một câu hỏi trắc nghiệm 38
Sơ đồ 3.6 Lưu đồ thuật toán sửa một câu hỏi trắc nghiệm 39
Sơ đồ 3.7 Lưu đồ thuật toán xóa một câu hỏi trắc nghiệm 40
Sơ đồ 3.8 Lưu đồ thuật toán tra cứu kiến thức 41
Sơ đồ 3.9 Lưu đồ thuật toán tìm kiếm câu hỏi trắc nghiệm 42
Sơ đồ 3.10 Lưu đồ thuật toán tạo đề kiểm tra 1 yếu tố kiến thức 44
Sơ đồ 3.11 Lưu đồ thuật toán tạo đề kiểm tra 1 nhóm yếu tố kiến thức 47
Sơ đồ 3.12 Lưu đồ thuật toán làm bài thi 49
Sơ đồ 3.13 Lưu đồ thuật toán nhận xét, đánh giá kết quả 51
Bảng 4.1 Kết quả kiểm tra, đánh giá với các đề thi có độ khó khác nhau 66
Bảng 4.2 Bảng số lượng đề thi mà mỗi thí sinh có câu trả lời sai theo từng yếu tố kiến thức, lần 1 70
Bảng 4.3 Tỷ lệ phần trăm số đề thi mà mỗi thí sinh có câu trả lời sai theo từng yếu tố kiến thức 72
Bảng 4.4 Bảng số lượng đề thi mà mỗi thí sinh có câu trả lời sai theo từng yếu tố kiến thức, lần 2 75
Trang 13CHƯƠNG 1: GIỚI THIỆU VỀ ĐỀ TÀI 1.1 Tổng quan và đặt vấn đề
Ngày nay, việc tổ chức kiểm tra, đánh giá bằng hình thức trắc nghiệm ngày càng phổ biến, áp dụng cho hầu hết các môn học từ cấp học phổ thông đến cao đẳng, đại học Từ những năm đầu của thế kỉ XXI, Bộ Giáo dục và Đào tạo đã có định hướng chuyển đổi hình thức thi trong các kỳ thi Trung học phổ thông cũng như tuyển sinh vào đại học Đánh dấu bước ngoặc quan trọng về việc áp dụng thi trắc nghiệm trong đánh giá kết quả học tập đó là Bộ Giáo dục và Đào tạo đã ban hành Chỉ thị số 55/2008/CT-BGDĐT ngày 30 tháng 9 năm 2008 về việc tăng cường giảng dạy, đào tạo và ứng dụng công nghệ thông tin trong ngành giáo dục giai đoạn 2008 - 2012, yêu cầu sử dụng trắc nghiệm trong các kỳ thi tốt nghiệp trung học phổ thông và tuyển sinh đại học Theo đó, các trường đại học và cao đẳng cũng dần áp dụng hình thức trắc nghiệm vào hầu hết các môn học đào tạo của trường Tuy nhiên, việc tổ chức thi trắc nghiệm đòi hỏi chi phí rất cao trong việc in ấn, mất nhiều thời gian trong việc soạn câu hỏi, tạo đề thi, chấm bài và công bố kết quả,
Để khắc phục những điểm yếu đó, có rất nhiều hệ thống hỗ trợ thi trắc nghiệm ra đời, những ứng dụng này rất đa dạng và phong phú cả về hình thức cũng như nền tảng công nghệ Ban đầu những ứng dụng này chỉ tập trung hỗ trợ cho người dùng việc soạn thảo, quản lí câu hỏi trắc nghiệm nhằm giảm thời gian trong khâu tạo các đề thi Sau đó, các ứng dụng dần được nâng cấp và cải thiện tính năng, không chỉ hỗ trợ soạn thảo và quản lí câu hỏi chúng còn hỗ trợ người dùng từ việc soạn thảo câu hỏi; tạo lập đề thi nhanh chóng với khả năng đảo câu hỏi, đáp án cũng như tạo ra các mã đề khác nhau; tổ chức thi; chấm bài và trả về kết quả ngay sau khi kết thúc bài thi một cách nhanh chóng và hiệu quả Có thể nhắc đến một số ứng dụng như Phần mềm thi trắc nghiệm ED Quiz 2.1 [17], được sử dụng cho tổ chức thi các học phần Ngoại ngữ thuộc khoa Anh, Trường Đại học Sư phạm Thành phố Hồ Chí Minh; Phần mềm Exam version 2.0 [18], ứng dụng được sử dụng để tổ chức thi kết thúc môn học chính thức tại trường Trung cấp Phương Nam từ năm 2015; Phần mềm thi trắc nghiệm trực tuyến
Trang 14của Trường Trung cấp nghề Hà Tĩnh [28]; Websize thi trắc nghiệm trực tuyến Aztest [29], …
Không những được tạo ra như một ứng dụng hỗ trợ thi độc lập, một số hệ thống giáo dục trực tuyến cũng đã xây dựng tích hợp tính năng kiểm tra, đánh giá kết quả học tập của học viên nhằm tạo nên một hệ thống thống nhất từ đăng ký nhập học đến quản lý quá trình đào tạo và đánh giá kết quả học tập Có thể đề cử một số hệ thống giáo dục trực tuyến như Bigschool [25], hocmai [26], zuni [27], …
Tuy nhiên, nhìn chung những ứng dụng này sử dụng chung cho rất nhiều môn, không cho phép người dùng lựa chọn các nội dung và kiến thức cần kiểm tra, đánh giá của một môn học cụ thể cũng như mức độ khó dễ của đề bài Qua các thông tin nghiên cứu thực tế tại các trường học và internet, tôi cho rằng hiện nay các ứng dụng
hỗ trợ kiểm tra, đánh giá kiến thức vẫn còn hạn chế về tính năng, chưa đáp ứng được nhu cầu của người sử dụng
Ngoài những ứng dụng thi trắc nghiệm, các website thi trắc nghiệm đã được thương mại hóa và các hệ thống giáo dục trực tuyến, còn có rất nhiều đề tài nghiên cứu nhằm cải thiện các tính năng trong việc tạo, quản lí câu hỏi, tạo đề và làm bài thi
Có một số đề tài liên quan như “Nghiên cứu xây dựng hệ thống thi trắc nghiệm trực tuyến bậc trung học phổ thông” [5], “Xây dựng phần mềm trắc nghiệm loại hình thông minh cho trẻ 11 - 12 tuổi” [14], “Nghiên cứu xây dựng hệ thống thi trắc nghiệm cho trường cao đẳng y tế Trà Vinh” [11] Các đề tài hiện nay tập trung vào việc cải tiến các công cụ nhập liệu câu hỏi, cải tiến thuật toán trộn đề, hoặc nâng cao chất lượng câu hỏi trắc nghiệm thông qua việc tính toán và xác định độ khó, độ phân biệt, đánh giá chất lượng ngân hàng câu hỏi,…nhưng rất ít những đề tài nghiên cứu về khả năng đánh giá kết quả bài thi của thí sinh sau khi hoàn thành bài làm cũng như nhận định mức độ hiểu biết của thí sinh về một hay một số yếu tố kiến thức nhất định của môn học, định hướng cho thí sinh những nội dung kiến thức còn khiếm khuyết cần phải
bổ sung, ôn tập
Trang 15Theo số liệu thống kê từ Cục quản lý chất lượng, Bộ Giáo dục và Đào tạo công
bố trên các phương tiện truyền thông vào cuối tháng 8 năm 2020, tại một số trường Đại học số nguyện vọng đăng ký vào các ngành thuộc lĩnh vực công nghệ thông tin dẫn đầu về số lượng thí sinh Đơn cử trường Đại học FPT năm 2020 tuyển 5000 chỉ tiêu ngành công nghệ thông tin, các trường đại học khác cũng có số lượng chỉ tiêu tương đối cao trong khoảng từ 100 đến 400 chỉ tiêu cho mỗi trường Nhập môn lập trình là môn học đầu tiên và bắt buộc đối với các sinh viên ngành công nghệ thông tin Đây là môn học cơ sở và cũng là môn học các sinh viên gặp nhiều khó khăn trong việc tiếp thu kiến thức và kiểm tra mức độ hiểu biết của mình Xuất phát từ thực tế
đó và quá trình nghiên cứu về mức độ hỗ trợ của các ứng dụng kiểm tra, đánh giá
kiến thức hiện tại tôi chọn đề tài xây dựng Hệ hỗ trợ kiểm tra, đánh giá kiến thức
về Nhập môn lập trình để phần nào hỗ trợ sinh viên trong việc tự đánh giá, đồng
thời là nguồn tài liệu hữu ích hướng dẫn học tập và kiểm tra môn học Trong cuộc cách mạng 4.0 gắn liền tin học hóa giáo dục, Hệ hỗ trợ kiểm tra, đánh giá kiến thức
về Nhập môn lập trình là công cụ cần có cho cả người dạy và người học
1.2 Mục tiêu nghiên cứu và phạm vi đề tài
Từ thực trạng nghiên cứu nêu trên, tôi đã định hướng đề tài với mục tiêu xây dựng một hệ hỗ trợ kiểm tra, đánh giá kiến thức về môn Nhập môn lập trình Ứng dụng này sẽ cung cấp cho người dùng hệ thống kiến thức về Nhập môn lập trình, một trong những môn học bắt buộc và cũng là môn học đầu tiên cho các học sinh, sinh viên ngành công nghệ thông tin Không chỉ cung cấp cây kiến thức liên quan đến môn học mà ứng dụng còn hỗ trợ việc kiểm tra, đánh giá kiến thức của người học thông qua các câu hỏi trắc nghiệm khách quan được phân bố theo từng yếu tố kiến thức riêng rẽ với các mức độ khó khác nhau cho người học tập luyện và tự đánh giá kiến thức của mình
Mục đích mang ý nghĩa quan trọng nhất của ứng dụng là không chỉ cho ra điểm của bài làm mà còn cung cấp thông tin về các câu trả lời đúng, trả lời sai và bảng nhận xét, đánh giá kết quả bài thi của thí sinh liên quan đến kiến thức môn học làm cơ sở
Trang 16định hướng cho học sinh những kiến thức còn yếu khuyết cần bổ sung để hoàn thiện môn học Ứng dụng phục vụ cho nhu cầu sử dụng của 3 nhóm đối tượng chính:
Thứ nhất là người quản lý hệ thống: Nhóm đối tượng này sẽ thực hiện các tác
vụ quản lý liên quan đến người dùng và phân quyền người dùng Chỉ người dùng có quyền quản trị mới được thực hiện thao tác, cụ thể:
- Tạo mới, chỉnh sửa thông tin, xóa tài khoản, cấp lại tài khoản và mật khẩu cho các đối tượng người dùng
- Phân quyền người dùng: Các thao tác chung dành cho tất cả các đối tượng sử dụng ứng dụng gồm tra cứu kiến thức, tìm kiếm câu hỏi trắc nghiệm, tạo đề, làm bài, xem kết quả đánh giá, bên cạnh đó mỗi nhóm đối tượng có quyền thao tác với các tác
vụ riêng, ví dụ nhóm tài khoản giáo viên có quyền cập nhật tri thức, cập nhật câu hỏi trắc nghiệm, tạo đề thi, làm bài thi, xem kết quả, tra cứu kiến thức và tra cứu câu hỏi; Nhóm tài khoản sinh viên thì không được can thiệp đến thao tác như quản lý người dùng, cập nhật tri thức và câu hỏi trắc nghiệm
Thứ hai là giảng viên: Nhóm đối tượng này sẽ thực hiện các tác vụ quản lý liên
quan đến tri thức và danh sách câu hỏi trắc nghiệm, cụ thể:
- Cập nhật nội dung các yếu tố kiến thức của hệ thống như thêm, xóa, chỉnh sửa nội dung của các yếu tố kiến thức, bổ sung ví dụ, bài tập minh họa, …
- Cập nhật các câu hỏi trắc nghiệm như thêm câu hỏi mới, chỉnh sửa nội dung câu hỏi, đáp án, yếu tố kiến thức liên quan hay xóa bỏ các câu hỏi cũ, không phù hợp, …
Thứ ba là sinh viên: Nhóm đối tượng này sẽ thực hiện các tác vụ chung dành
cho người dùng liên quan đến việc tra cứu kiến thức, tìm kiếm câu hỏi trắc nghiệm, tạo đề kiểm tra và làm bài, xem bảng đánh giá bài thi, cụ thể:
- Tra cứu nội dung các yếu tố kiến thức liên quan đến môn học
- Tìm kiếm các câu hỏi trắc nghiệm liên quan đến yếu tố kiến thức mà sinh viên quan tâm và muốn ôn tập
Trang 17- Tạo đề kiểm tra ngẫu nhiên hoặc theo các nhu cầu của sinh viên về yếu tố kiến thức liên quan và mức độ khó
- Làm bài kiểm tra và xem đánh giá bài làm để làm cơ sở định hướng học tập, hoàn thiện kiến thức môn học
Việc kiểm tra, đánh giá giúp xác nhận khả năng vận dụng kiến thức của học sinh, sinh viên trong việc trả lời các câu hỏi, bài tập trong đề thi Tuy vậy, người học còn
có nhu cầu muốn biết mình đang hạn chế ở yếu tố kiến thức nào để cập nhật, bổ sung kiến thức đó Những ứng dụng thi trắc nghiệm ngày nay chưa đáp ứng được nhu cầu nêu trên vì vậy tôi chọn đề tài xây dựng “Hệ hỗ trợ kiểm tra, đánh giá kiến thức về Nhập môn lập trình”
Đề tài này tập trung nghiên cứu xây dựng mô hình tri thức cho kiến thức Nhập môn lập trình, môn học dành cho các sinh viên đại học ngành công nghệ thông tin Danh sách các câu hỏi trắc nghiệm khách quan về kiến thức nhập môn lập trình nhằm kiểm tra, đánh giá kiến thức sinh viên
Tạo đề thi theo yếu tố kiến thức, theo các mức độ khó khác nhau từ dễ, trung bình, khó và khá khó
Làm bài thi, chấm điểm và nhận xét, đánh giá bài thi của sinh viên liên quan đến các yếu tố kiến thức môn học
Đề tài này tập trung nghiên cứu trong phạm vi các tác vụ dành cho đối tượng chính của ứng dụng đó là sinh viên Bao gồm:
- Tra cứu các yếu tố tri thức về nhập môn lập trình
- Tra cứu các câu hỏi trắc nghiệm liên quan đến các yếu tố tri thức về nhập môn lập trình
- Tạo đề kiểm tra đánh giá kiến thức về nhập môn lập trình một cách ngẫu nhiên hoặc theo các tham số để lựa chọn như nội dung yếu tố kiến thức cần kiểm tra, mức
độ khó của đề, số lượng câu hỏi
Trang 18- Làm bài và nhận xét đánh giá kết quả bài thi
- Đề xuất các tác vụ liên quan đến việc cập nhật tri thức và câu hỏi trắc nghiệm nhưng không triển khai thử nghiệm trong luận văn này
1.3 Phương pháp và ý nghĩa luận văn
Thu thập các yếu tố kiến thức của môn Nhập môn lập trình, phân tích thành các nhóm kiến thức riêng biệt và lưu trữ theo một mô hình có thể xử lý được
Thu thập, xây dựng các câu hỏi trắc nghiệm khách quan, phân tích và sắp xếp chúng vào các nhóm kiến thức đã được phân chia trước đó với các mức độ khó từ dễ, trung bình, khó đến khá khó
Xây dựng mô hình cho các nội dung liên quan, tạo đề, tổ chức thi và suy luận nhằm đưa ra nhận xét, đánh giá cho kết quả bài thi của sinh viên
Hệ hỗ trợ kiểm tra, đánh giá kiến thức về nhập môn lập trình không chỉ là một ứng dụng thi trắc nghiệm mà còn là một hệ hỗ trợ học tập đối với sinh viên giúp sinh viên nhận biết khả năng vận dụng kiến thức của mình trên các kiến thức nhất định đồng thời biết được những yếu tố kiến thức nào còn thiếu sót mà kịp thời cập nhật cho bản thân thông qua các nhận xét sau mỗi bài thi
1.4 Kết cấu luận văn
Luận văn này gồm có 5 chương:
- Chương 1: Giới thiệu tổng quan về đề tài bao gồm các thông tin khảo sát về thực trạng tổ chức kiểm tra, đánh giá kết quả học tập bằng hình thức thi trắc nghiệm trên máy tính Trình bày các vấn đề tồn tại trong việc xây dựng các hệ thống hỗ trợ thi trắc nghiệm hiện nay, mục tiêu, phạm vi nghiên cứu và ý nghĩa của đề tài
- Chương 2: Trình bày cơ sở lý thuyết liên quan đến tri thức, biểu diễn tri thức, các
mô hình và kỹ thuật để xây dựng ứng dụng hỗ trợ kiểm tra, đánh giá kiến thức
Trang 19- Chương 3: Thiết kế cơ sở tri thức, tổ chức lưu trữ, mô hình hóa các yêu cầu và xây dựng thuật giải cho các yêu cầu liên quan đến việc xây dựng hệ hỗ trợ kiểm tra, đánh giá kiến thức
- Chương 4: Trình bày bảng thiết kế các chức năng và quy trình thực hiện của ứng dụng, kiểm thử một số chức năng của ứng dụng trên một vài mẫu cụ thể so sánh với các ứng dụng hiện có và đưa ra đánh giá
- Chương 5: Kết luận và hướng phát triển, tóm tắt kết quả đạt được, những vấn đề còn tồn tại của đề tài và định hướng phát triển tiếp theo nhằm hoàn thiện ứng dụng
và phát triển thêm để nâng cao khả năng hỗ trợ của ứng dụng
Trang 20CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Biểu diễn tri thức và hệ cơ sở tri thức [4] [8] [10]
Tri thức được hiểu là kiến thức hay sự hiểu biết của con người trong các lĩnh vực hay miền tri thức nhất định như kiến thức về toán học nói chung hay các miền tri thức toán học với phạm vi thu hẹp hơn như kiến thức về hình học phẳng, hình học không gian, hình học giải tích, … Tri thức thường bao gồm rất nhiều các thành phần trừu tượng và chúng có các mối quan hệ rất phức tạp Các thành phần cơ bản thường là thành phần khái niệm, quan hệ, toán tử, hàm, sự kiên hay các luật
Tùy thuộc vào cách thức con người giải quyết vấn đề mà có các kỹ thuật để biểu diễn các dạng tri thức khác nhau Không có kỹ thuật nào biểu diễn đầy đủ cơ chế tổ chức tri thức trong các chương trình máy tính vì vậy tùy vào lĩnh vực hay miền tri thức nhất định mà ta lựa chọn dạng biểu diễn cho phù hợp Có thể nói đến một số dạng biểu diễn tri thức thường gặp dưới đây
Tri thức thủ tục, dạng tri thức này mô tả cách thức giải quyết một vấn đề, giúp
đưa ra giải pháp để thực hiện một công việc nào đó Dạng biểu diễn này thường là các luật, chiến lược, lịch trình và thủ tục
Tri thức khai báo, loại tri thức này bao gồm các phát biểu đơn giản dưới dạng các
khẳng định logic đúng hoặc sai Nó có thể là một danh sách các khẳng định nhằm mô
tả đầy đủ hơn về đối tượng hay một khái niệm nào đó
Siêu tri thức, loại tri thức này mô tả tri thức về tri thức, giúp lựa chọn tri thức
thích hợp nhất trong số các tri thức khi giải quyết một vấn đề Người ta sử dụng tri thức này để điều chỉnh hiệu quả giải quyết vấn đề bằng cách hướng các lập luận về miền tri thức có khả năng cao hơn
Tri thức heuristic, còn được gọi là tri thức nông cạn do không đảm bảo hoàn toàn
chính xác về kết quả giải quyết vấn đề
Tri thức có cấu trúc mô tả mô hình tri thức tổng quát của một vấn đề, diễn tả chức
năng và mối quan hệ giữa các tri thức dựa theo cấu trúc xác định
Trang 21Hệ cơ sở tri thức là một tập hợp các thành phần kiến thức, các khái niệm, các luật, các mối quan hệ về một lĩnh vực hay miền tri thức cụ thể nào đó giúp chúng ta quản
lý tri thức trên máy đồng thời giải quyết các vấn đề liên quan đến tri thức
Quá trình thu thập tri thức là quá trình rút trích các tri thức và định dạng chúng theo một cấu trúc, việc rút trích được thực hiện từ nhiều nguồn khác nhau, đặt biệt là
ý kiến của các chuyên gia trong từng lĩnh vực cụ thể hình thành hệ chuyên gia Các hệ chuyên gia là một loại cơ sở tri thức được thiết kế cho một ứng dụng cụ thể, thuộc một lĩnh vực cụ thể bao gồm trong đó là kinh nghiệm của chuyên gia nhằm suy luận và giải quyết những vấn đề chuyên môn liên quan đến lĩnh vực đang được
đề cập đến Kiến trúc cơ bản của một hệ chuyên gia đòi hỏi phải có hai thành phần chính đó là Cơ sở tri thức và bộ suy diễn Khi tiếp nhận yêu cầu giải quyết vấn đề, bộ suy diễn sẽ lưu trữ các sự kiện (giả thiết, mục tiêu) sau đó sẽ tìm ra câu trả lời cho vấn đề đó Trong quá trình suy diễn, bộ suy diễn sẽ tìm kiếm và so sánh với các luật, các mối quan hệ trong cơ sở tri thức để tìm ra lời giải
Nguồn thu thập thi thức thường là sách vở, tài liệu và từ các chuyên gia Ban đầu tri thức được diễn đạt dưới dạng cách hiểu tự nhiên của con người thông qua ngôn ngữ, các ký hiệu, các sơ đồ thông dụng để diễn đạt thông tin của con người Từ tri thức dưới dạng tự nhiên đó, người thiết kế phải tổ chức, biểu diễn chúng dưới dạng các mô hình nhằm dễ dàng lưu trữ, xử lý trên máy tính và giải quyết các vấn đề của bài toán
2.2 Các phương pháp biểu diễn tri thức cơ bản [4] [8]
Để xây dựng các mô hình biểu diễn tri thức ta có thể vận dụng các công cụ, phương tiện như: các cấu trúc dữ liệu kiểu dãy, tập hợp, ngăn xếp, danh sách, hàng đợi, các cấu trúc cây, lớp
Ngoài ra tùy vào lĩnh vực hay miền tri thức nhất định ta có thể sử dụng các công
cụ, cấu trúc toán học như logic mệnh đề, logic vị từ, logic mờ, logic thời gian, …
Trang 22Bên cạnh đó, với các dạng hệ giải bài toán ta còn có thể sử dụng kiến thức xác suất thống kê, toán rời rạc và lý thuyết đồ thị, đại số tuyến tính hay giải tích để xây dựng mô hình biểu diễn tri thức Một số mô hình biểu diễn tri thức cơ bản có thể nói đến như:
2.2.1 Phương pháp biểu diễn dựa trên logic hình thức
Có thể xem đây là phương pháp biểu diễn tri thức đơn giản nhất khi nó sử dụng các biểu thức logic hình thức để biểu diễn các sự kiện và các luật trong cơ sở tri thức phương pháp này sử dụng các phép toán logic như and (), or (), not (), kéo theo () hay tương đương () để diễn tả một khái niệm
Tuy nhiên phương pháp này chủ yếu làm rõ về mặt hình thức chứ không mô
tả đầy đủ được hết các tri thức có độ phức tạp cao hay tính trừu tượng lớn
2.2.2 Phương pháp biểu diễn tri thức thủ tục (hệ luật dẫn)
Phương pháp này biểu diễn tri thức như là một tập hợp các luật, các chỉ thị nhằm giải quyết vấn đề mà bài toán đặt ra Kiểu biểu diễn này thường được thể hiện bằng một tập các luật dẫn có dạng if … then …, tức là một cặp gồm điều kiện – kết quả hay hành động Điều đó cũng có nghĩa là tri thức sẽ được biểu diễn dưới dạng một tập các luật dẫn trên các sự kiện hay hành động, nếu điều kiện xảy ra thì thành động hay kết quả sẽ được thực hiện
Cấu trúc của mô hình hệ luật dẫn gồm hai thành phần
(Facts, Rules)
Trong đó:
- Facts là tập các sự kiện hay tác vụ trong phạm vi tri thức
- Rules là tập các luật dẫn, mỗi luật r thuộc tập Rules có dạng
r: gt(r) kl(r)
với gt(r) là giả thiết và kl(r) là kết luận của luật r
Trang 232.2.3 Phương pháp biểu diễn tri thức dạng mạng
Phương pháp này biểu diễn tri thức thành dạng một đồ thị với mỗi nút trong
đồ thị biểu diễn một yếu tố tri thức là các khái niệm, sự kiện, đối tượng hay các thành phần cấu trúc phức tạp khác, mỗi cung thể hiện mối quan hệ giữa các yếu tố tri thức
ở các đỉnh Hai đại diện phổ biến nhất của phương pháp này là mạng ngữ nghĩa và các đồ thị khái niệm
Mô hình mạng ngữ nghĩa có dạng
(Nodes, Arcs)
Trong đó:
Nodes là tập các yếu tố hay các bộ phận cấu thành tri thức, các nodes có thể là khái
niệm, đối tượng, quan hệ, sự kiện, các cấu trúc từu tượng khác
Arcs là các liên kết biểu diễn sự liên hệ giữa các nodes Các liên hệ này có thể là
IS_A, HAS_A, …
Phương pháp này giúp thể hiện rõ mối quan hệ giữa cá yếu tố tri thức thông qua biểu diễn của các cung Tuy nhiên các thao tác tìm kiếm trên mạng ngữ nghĩa thường gặp khó khăn đặc biệt đối với các mạng có kích thước lớn
Mạng các đối tượng tính toán:
Một mạng tính toán còn được gọi là đối tượng tính toán (ký hiệu O) [7] Một mạng các đối tượng tính toán bao gồm tập các đối tượng tính toán
O = {O1, O2, On} và tập các quan hệ giữa các đối tượng tính toán
F = {f1, f2, fm} Mô hình biểu diễn tri thức dạng này cho phép ta thực hiện tính toán các biến của một hay hiều đối tượng dựa trên tập biến của các đối tượng khác
Trang 242.2.4 Phương pháp biểu diễn tri thức theo cấu trúc
Phương pháp này sử dụng các cấu trúc dữ liệu phức tạp và trừu tượng trong
việc biểu diễn Có thể nhắc đến như cấu trúc khung (Frame), Script hay các lớp đối
tượng (Class)
Với Frame là một cấu trúc dữ liệu lưu trữ tất cả những tri thức liên quan đến một đối tượng nào đó, nó “đóng gói” toàn bộ một đối tượng, một vấn đề, một tình huống thành một thực thể duy nhất có cấu trúc Vì vậy Frame giúp ta mô tả khá đầy
đủ và chi tiết về một đối tượng
Phương pháp này thường được dùng để biểu diễn các tri thức chuẩn, những tri thức được xây dựng dựa trên kinh nghiệm hoặc các đặc điểm đã được hiểu biết cặn
kẽ
Mỗi Frame mô tả một đối tượng (object) thường bao gồm hai thành phần chính
là slot (là một thuộc tính đặc tả đối tượng được biểu diễn bởi frame) và facet (đặc tả một số thông tin hoặc thủ tục liên quan đến thuộc tính được mô tả bởi slot) Các Frame
có thể được liên kết với nhau theo một nguyên tắc nào đó, có thể thể hiện tính kế thừa của các tính chất giữa các Frame tạo thành cấu trúc phân cấp với mức độ trừu tượng
từ cao xuống thấp giống như mô hình của một cấu trúc cây với gốc là mức độ trừu tượng cao nhất, thấp dần là các nhánh và các cấp dưới cùng là các lá
Script và Class cũng biểu diễn tri thức bằng các thuộc tính và hành vi giống như đối với Frame Thay vì Frame đặc tả các đối tượng thì Script mô tả một chuỗi các sự kiện
2.3 Phương pháp biểu diễn tri thức dựa trên Ontology
Trang 25Về nguồn gốc triết học, ontology là một nhánh của triết học, liên quan đến sự tồn tại và bản chất các sự vật trong thực tế Có thể hiểu, đối tượng nghiên cứu chủ yếu của ontology là phân loại các sự vật dựa trên các đặc điểm mang tính bản chất của
nó
Trong khoa học máy tính, lĩnh vực trí tuệ nhân tạo giải quyết các vấn đề lý luận các mô hình tri thức, thuật ngữ: “ontology” nhằm mô tả việc làm thế nào để có thể biểu diễn tri thức của thế giới quan lên máy tính Có một số định nghĩa về ontology được phổ biến rộng rãi như:
Theo tài liệu [23] Gruber (1993) định nghĩa ontology là một đặc tả tường minh của sự khái niệm hóa trong một lĩnh vực (An ontology is an explicit specification of
a conceptualization”
Theo tài liệu [24] Borst (1997) đã bổ sung ý tưởng là các khái niệm cần thể hiện được sự chia sẻ thông tin với các khái niệm liên quan và là một sự thống nhất giữa nhiều khái niệm chứ không phải là một khái niệm độc lập và nên được thể hiện trong một định dạng mà máy tính có thể đọc được, ông định nghĩa ontology là một đặc tả hình thức của sự khái niệm hóa được chia sẻ
Năm 1998, Studer và cộng sự đã kết hợp hai định nghĩa trên lại với nhau với nội dung ontology là một đặc tả hình thức và tường minh của một sự khái niệm hóa được chia sẻ [22]
- Với sự khái niệm hóa (conceptualization) là một mô hình trừu tượng bao gồm các khái niệm có liên quan để mô tả thế giới thực
- Tường minh (explicit) nói đến các khái niệm và các ràng buộc được sử dụng đã được định nghĩa cụ thể và rõ ràng
- Hình thức (formal) là vấn đề máy có thể hiểu và thao tác được trên ontology
- Chia sẻ (shared) thể hiện tri thức trong ontology không bị giới hạn bởi vài cá nhân mà được chấp nhận rộng rãi
Trang 26 Theo Hendler (2001) định nghĩa ontology là một tập hợp các thuật ngữ tri thức (knowledge term), bao gồm từ vựng, các quan hệ ngữ nghĩa, một số luật suy diễn và logic trong một lĩnh vực đặc thù
Có rất nhiều cách định nghĩa về ontology, mỗi định nghĩa thể hiện một cách nhìn nhận khác nhau về ontology và kèm theo một phương pháp luận và kỹ thuật để xây dựng nó
2.3.2 Các thành phần cơ bản của ontology [4] [8]
Các ontology được xây dượng thường bao gồm các thành phần sau:
- Các lớp (class), thành phần này tương ứng với các khái niệm (concept), là
một thành phần quan trọng của một ontology Các lớp này được tổ chức theo một cấu trúc phân cấp để mô tả các khái niệm trong một miền, lĩnh vực Theo đó, ontology có thể sử dụng tính kế thừa của cấu trúc phân cấp được định nghĩa, các lớp con biểu diễn khái niệm cụ thể hơn so với lớp cha
- Quan hệ (relation) biểu diễn liên kết giữa các khái niệm trên một miền tri
thức Các quan hệ nhị phân được sử dụng để biểu diễn thuộc tính và giá trị của quan
hệ là một khái niệm
- Khía cạnh (slot), thuộc tính (property, attribute) hay vai trò (role) là một mặt
nào đó của sự vật là kiểu quan hệ giữa thực thể và thuộc tính, giữa thực thể và lớp hoặc giữa các lớp với nhau Thuộc tính được phân biệt với quan hệ (relation) dựa trên giá trị là một kiểu dữ liệu (string, number, boolean, ) Một thuộc tính bản thân nó cũng có các thuộc tính con và cũng có các ràng buộc trên nó
- Thực thể, thể hiện (individual, instance) biểu diễn các phần tử riệng biệt của
khái niệm là các thể hiện của lớp Mỗi thể hiện của lớp biểu diễn một sự cụ thể hóa của khái niệm đó
Trang 27- Tiên đề (formal axioms) dùng để mô hình hóa các khẳng định tiền đề luôn
đúng, thường được sử dụng để biểu diễn tri thức mà không thể định nghĩa bằng các thành phần khác hay để xác minh tính nhất quán của bản thân các ontology và suy luận ra kiến thức mới
2.3.3 Phân loại ontology [4] [8]
Để phân loại ontology ta phải dựa trên rất nhiều tiêu chí và khía cạnh khác nhau, nhưng phổ biến nhất có hai phương pháp được sử dụng: thứ nhất là phân loại các ontology dựa theo tính hình thức và sự thể hiện của ngôn ngữ được dùng để miêu
tả ontology (ngôn ngữ tự nhiên, ngôn ngứ hình thức, …); thứ hai là phân loại dựa vào
phạm vi của các đối tượng được mô tả bởi các ontology
- Phân loại dựa trên tính hình thức và sự biểu hiện của ngôn ngữ miêu tả:
Ontology thông tin (Information Ontologies) bao gồm các biểu đồ, phác thảo
sử dụng để lên kế hoạch, thiết kế ý tưởng cho các công trình, dự án
Ontology thuật ngữ (Linguistic/Terminological Ontologies) mô tả các khái
niệm theo hướng tiên đề và định nghĩa được phát biểu dưới dạng logic hoặc một vài ngôn ngữ hướng đối tượng chuyển đổi theo dạng logic Các dạng logic này không hạn chế về việc phát biểu các tiên đề và định nghĩa và máy tính có thể dễ dàng thực hiện Các Ontology ngôn ngữ có thể là bảng chú giải các thuật ngữ, từ điển, từ vựng
điều khiển, phân cấp, …
Ontology phần mềm (Software Ontologies) cung cấp lược đồ khái niệm mà
trọng tâm chính là lưu trữ và thao tác dữ liệu
Ontology hình thức (Formal Ontologies) yêu cầu ngữ nghĩa rõ ràng của các
ngôn ngữ được sử dụng để định nghĩa các khái niệm Các ngôn ngữ thường được sử
dụng để mô tả Ontology loại này là logic thủ tục, logic mô tả hoặc đồ thị khái niệm
- Phân loại dựa trên phạm vị của các đối tượng được mô tả
Trang 28Ontology cục bộ/ứng dụng (Local Ontologies/Application Ontologies) bao
gồm các tri thức cần thiết dùng để mô hình hóa cho một lĩnh vực cụ thể theo quan
điểm của người phát triển
Ontology lĩnh vực (Domain Ontologies) có thể tái sử dụng trong một lĩnh vực
nào đó
Ontology tác vụ (Task Ontologies) cung cấp các từ vựng được hệ thống hóa từ
các thuật ngữ dùng để giải quyết các tác vụ
Ontology tham chiếu lõi (Core Reference Ontologies) là sự tích hợp nhiều
Ontology lĩnh vực nhằm cung cấp các khái niệm quan trọng của một lĩnh vực
Ontology tổng quát (Genenal Ontologies) bao gồm các tri thức có ý nghĩa
chung không dành riêng cho một miền hay một lĩnh vực cụ thể
Ontology cấp độ cao (Top Level Ontologies/Upper Level Ontologies) diễn tả
những khái niệm tổng quát và trừu tượng có thể chia sẻ qua nhiều lĩnh vực và ứng dụng Nó không được sử dụng trực tiếp mà được sử dụng thông qua các ontology khác
2.4 Phương pháp kiểm tra, đánh giá bằng trắc nghiệm khách quan
2.4.1 Các phương pháp kiểm tra, đánh giá kết quả học tập thường dùng
Ta có thể tóm tắt hệ thống các phương pháp kiểm tra, đánh giá kết quả học tập
bằng sơ đồ dưới đây [9]:
Trang 29- Phương pháp quan sát giúp xác định thái độ, hành vi, thao tác và kĩ năng
thực hành của người được kiểm tra Phương pháp này chủ yếu mang tính chất định tính nên thường dùng trong đánh giá kết quả thực hành
- Phương pháp vấn đáp thường dùng trong các bài kiểm tra xử lí tình huống,
rèn luyện sự phản ứng nhanh nhạy trong các trường hợp cụ thể Phương pháp này có
độ chính xác tương đối cao tuy nhiên không thích hợp để kiểm tra một số lượng kiến thức lớn và mất khá nhiều thời gian để thực hiện
- Phương pháp kiểm tra viết là phương pháp được sử dụng phổ biến nhất với
ưu điểm có thể kiểm tea đồng thời nhiều học sinh, bao gồm hai hình thức là trắc nghiệm tự luận và trắc nghiệm khách quan
Đúng/sai
Nhiều lựa chọn
Trang 302.4.2 Đôi nét về phương pháp trắc nghiệm khách quan [15] [19]
Tác giả Dương Thiệu Tống định nghĩa “Trắc nghiệm là một dụng cụ hay phương thức hệ thống nhằm đo lường một mẫu các động thái để trả lời câu hỏi: thành tích của cá nhân như thế nào khi so sánh với những người khác hay so sánh với một lĩnh vực các nhiệm vụ dự kiến” [6]
Có rất nhiều phương pháp kiểm tra, đánh giá kết quả học tập của người học,
có thể nhắc đến như quan sát, vấn đáp, trắc nghiệm tự luận, trắc nghiệm khách quan,… Từ những năm đầu thập niên 50, 60 của thế kỉ XX trắc nghiệm khách quan
đã bắt đầu được áp dụng trong các trường học Theo đó, rất nhiều tài liệu về trắc nghiệm khách quan cũng được xuất bản với một số đại diện tiêu biểu như Lê Quang Nghĩa (1963) với “Trắc nghiệm vạn vật lớp 12”; Phùng Văn Hướng (1964) với
“Phương pháp học và thi vạn vật lớp 12”; Dương Thiệu Tống với “Trắc nghiệm thành quả học tập” [13]
Đến những năm 90 của thế kỷ XX, với mục đích thúc đẩy việc sử dụng trắc nghiệm khách quan trong kiểm tra đánh giá ở bậc phổ thông, giáo sư Trần Bá Hoành
đã biên soạn những tài liệu đề cập đến những kĩ thuật cơ bản nhất của việc xây dựng, thử nghiệm và ứng dụng trắc nghiệm khách quan như “Đánh giá trong giáo dục” (1996), “Đổi mới phương pháp dạy học” (1997) [13]
Tuy có những bước phát triển đáng ghi nhận nhưng phương pháp đo lường bằng trắc nghiệm khách quan vẫn còn khá nhiều hạn chế Một sự kiện khác đánh dấu
sự phát triển của phương pháp trắc nghiệm khách quan đó là vào tháng 7/1996 trường Đại học Đà Lạt đã tổ chức kỳ thi tuyển sinh vào đại học thí điểm bằng phương pháp trắc nghiệm khách quan Năm 1998 trường Đại học Tây Nguyên, Đại học Quốc gia
thành phố Hồ Chí Minh cũng tổ chức thi bằng hình thức này
Trắc nghiệm khách quan có bốn hình thức chủ yếu đó là câu hỏi dạng đúng/sai (True-false items), câu hỏi ghép đôi (Matching items), câu điền khuyết (Completion items), câu nhiều lựa chọn (Multiple choice question - MCQ)
Trang 31- Câu hỏi dạng đúng/sai (True-false items) được thể hiện dưới hình thức một câu nhận định, phát biểu Học sinh trả lời bằng cách lựa chọn một trong hai đáp án Đúng hoặc Sai, rất thích hợp trong việc kiểm tra tính đúng đắn của các định luật, khái niệm hay sự kiện lịch sử Tuy nhiên điểm hạn chế của dạng câu hỏi này là xác suất
để lựa chọn đáp án đúng mà không cần phải tư duy là 50% Nói cách khác, độ tin cậy trong việc đánh giá của dạng câu hỏi này là không cao, tạo tâm lý chủ quan và hình thành thói quen học thuộc lòng chứ không suy nghĩ và phân tích vấn đề
- Câu hỏi dạng ghép đôi (Matching items) là câu hỏi bao gồm có hai dãy thông tin, yêu cầu thí sinh phải ghép đúng từng cặp nội dung của hai dãy thông tin để có được một thông tin đúng, đầy đủ Thường dạng câu hỏi này được cho với dữ liệu của hai dãy không bằng nhau để cặp cuối cùng vẫn còn nhiều đáp án để lựa chọn
- Câu hỏi dạng điền khuyết (Completion items) nêu ra một mệnh đề có khuyết
một bộ phận, thí sinh phải điền nội dung thích hợp vào bộ phận còn trống Dạng câu hỏi này hạn chế tính may rủi, nó đòi hỏi người làm phải nhớ, phân tích và trình bày nội dung một cách đúng đắn
- Câu hỏi dạng nhiều lựa chọn (Multiple choice question – MCQ) đưa ra một nhận định hay một nội dung chưa hoàn chỉnh và một số phương án trả lời (thường là
4 – 5) Trong các phương án trả lời chỉ có một phương án trả lười đúng nhất, các phương án còn lại là có tác dụng “gây nhiễu” (distractor) cho thí sinh
Trong phạm vi đề tài này chỉ tập trung và phương pháp trắc nghiệm khách quan với dạng câu hỏi nhiều lựa chọn, có 4 phương án trả lời và có một lựa chọn đúng nhất
Dạng câu hỏi này có 2 thành phần chính là phần nội dung hỏi - câu dẫn (stem) nêu vấn đề, cung cấp thông tin cần thiết hoặc một câu hỏi và phần lựa chọn gồm có các phương án trả lời cho câu hỏi hoặc bổ sung cho phát biểu được hoàn chỉnh Trong các phương án đó chỉ có một phương án đúng nhất
Trang 322.4.3 Độ khó của câu trắc nghiệm và độ khó của đề kiểm tra, đánh giá
2.4.3.1 Độ khó của câu trắc nghiệm
Người ta xác định độ khó dựa vào việc thử nghiệm câu hỏi trắc nghiệm trên các đối tượng thí sinh phù hợp, và định nghĩa độ khó p bằng tỷ số phần trăm thí sinh làm đúng câu hỏi trên tổng số thí sinh tham gia làm câu hỏi đó: [9] [12]
𝒑 = 𝒕ổ𝒏𝒈 𝒔ố 𝒕𝒉í 𝐬𝐢𝐧𝐡 𝒕𝒓ả 𝒍ờ𝒊 đú𝒏𝒈
𝒕ổ𝒏𝒈 𝒔ố 𝒕𝒉í 𝐬𝐢𝐧𝐡 𝒕𝒉𝒂𝒎 𝒈𝒊𝒂Theo đó giá trị p thông thường có thể chấp nhận được là từ 0,25 đến 0,75, lớn hơn 0,75 là quá dễ, nhỏ hơn 0,25 là quá khó
- Từ 75% - 100% là câu dễ;
- Từ 30% - 75% là câu trung bình;
- Dưới 30% là câu khó
2.4.3.2 Độ khó của đề kiểm tra, đánh giá
Để xác định được độ khó của một đề kiểm tra người ta thường tính toán dựa trên tỉ lệ các câu với các mức độ khó khác nhau trong tổng số câu của
đề kiểm tra Hiện nay, chưa có tài liệu chính thức nào quy định cụ thể tỉ lệ câu hỏi theo mức độ khó để xác định độ khó của đề kiểm tra Tuy nhiên theo ý kiến của các chuyên gia thông thường đối với một đề kiểm tra với mức độ khó nào đó thì tỉ lệ câu hỏi có độ khó tương ứng thường nằm trong khoảng từ 50 – 60% Chẳng hạn một đề kiểm tra có số lượng câu hỏi 45 câu với độ khó trung bình thì phải có khoảng từ 23 – 27 câu có độ khó trung bình còn lại là các câu hỏi với các mức độ khó khác
Trang 33Trong phạm vi của luận văn này, thông qua ý kiến các chuyên gia việc xác định mức độ khó của đề kiểm tra được thể hiện qua sự phân bố câu hỏi như sau:
Mức độ đề thi Tỷ lệ
câu dễ
Tỷ lệ câu trung bình
Tỷ lệ câu khó
Tỷ lệ câu khá khó
Trang 34CHƯƠNG 3: THIẾT KẾ CƠ SỞ TRI THỨC, MÔ HÌNH HÓA YÊU CẦU VÀ
XÂY DỰNG THUẬT GIẢI 3.1 Mô hình tri thức nhập môn lập trình tiếp cận Ontology
Đầu tiên, tiến hành thu thập và phân tích một yếu tố kiến thức của nhập môn lập trình: biến (variables), ta nhận thấy rằng kiến thức về biến bao gồm các thành phần như khái niệm biến, cách khai báo biến, quy tắc đặt tên biến, giá trị của biến, vị trí khai báo biến (hay phạm vi của biến) Với mỗi thành phần đó có thể chỉ sẽ chứa nội dung kiến thức của nó hoặc phân chia ra thành các thành phần nhỏ hơn, chi tiết hơn Chẳng hạn, thành phần kiến thức về phạm vi của biến được chia thành các thành phần nhỏ hơn như biến cục bộ và biến toàn cục, ta có thể thể hiện như sau:
* Biến
- Khái niệm biến <nội dung>
- Khai báo biến <nội dung>
- Quy tắc đặt tên biến <nội dung>
- Giá trị của biến <nội dung>
- Phạm vi của biến
+ Biến toàn cục <nội dung>
+ Biến cục bộ <nội dung>
Tương tự, khi phân tích các yếu tố tri thức khác, ta thấy chúng đề có thể được phân cấp từ tổng quát đến chi tiết theo cấu trúc tương tự Phân tích một cách tổng quát hệ thống tri thức của môn học nhập môn lập trình tôi đánh giá tri thức về nhập môn lập trình có thể được xây dựng theo hệ thống phân cấp các yếu tố tri thức từ tổng quan đến chi tiết Mỗi yếu tố tri thức có một định danh kèm theo nội dung của yếu tố tri thức đó, lưu trữ dưới dạng văn bản
Các Ontology gồm có nhiều thành phần, tuy nhiên thành phần quan trọng nhất của một Ontology là lớp (Class) – biểu diễn tương ứng các khái niệm (concept) được
Trang 35tổ chức theo một cấu trúc phân cấp để mô tả các khái niệm trong một miền tri thức Trong phạm vi luận văn này, tôi đã nghiên cứu và đề xuất một Ontology đơn giản nhằm mô tả các yếu tố kiến thức về Nhập môn lập trình dưới dạng cấu trúc phân cấp Qua quá trình nghiên cứu tôi nhận thấy với hệ thống tri thức này mô hình dữ liệu phân cấp dạng cây là phù hợp để biểu diễn cho hệ thống tri thức nhập môn lập trình bởi vì mô hình này được xây dựng bằng cách phân cấp theo node, node gốc là node tổng quát nhất, các nhóm yếu tố tri thức được lưu trữ vào các node con gọi là node nhánh, với mỗi node nhánh của cây ta có thể phân cấp thành các node nhánh con, các node này sẽ phân cấp cho đến node chứa yếu tố tri thức sâu nhất (gọi là node lá) Tổng quát mô hình gồm có một node gốc, các node nhánh và các node lá có cấu trúc được trình bày dưới dạng sơ đồ sau:
Sơ đồ 3.1 Sơ đồ mô hình tri thức nhập môn lập trình Cấu trúc mỗi node gồm có 4 thành phần
NODE (key, name, value, parent)
Trang 36Key: lưu trữ giá trị định danh của một yếu tố tri thức nhất định làm cơ sở để xác định
một node
Name: lưu trữ tên (nội dung đặc trưng cho yếu tố tri thức)
Value: lưu trữ 1 văn bản thể hiện nội dung của yếu tố tri thức tương ứng
Parent: lưu trữ key của node cha, nhằm xác định thành phần tri thức cấp trên
Tổ chức lưu trữ dữ liệu dưới dạng một quan hệ như sau:
Bảng 3.1 Bảng dữ liệu lưu trữ cây tri thức về nhập môn lập trình
<key 1> <name 1> <value 1> <key_parent>
<key i> <name i> <value i> <key_parent>
<key n> <name n> <value n> <key_parent>
Trong phạm vi của đề tài này, tôi đã tham khảo các tài liệu liên quan đến kiến thức nhập môn lập trình như: Giáo trình Tin học 2 [1], Đề cương môn học Cơ sở lập trình, Trường Đại học Mở Thành phố Hồ Chí Minh [2], Đề cương môn học Nhập môn lập trình, Trường Đại học Công nghệ thông tin – Đại học Quốc gia Thành phố
Hồ Chí Minh [3], Giáo trình kỹ thuật lập trình C (căn bản và nâng cao) [16], C++ Programming From Problem Analysis to Program Design [20], The Complete Reference C++ [21] Từ đó, tiến hành thu thập và phân nhóm các yếu tố kiến thức cơ
sở để xây dựng hệ thống phân cấp các yếu tố đó theo mô hình đã đề ra Mặc khác, ngoài các tài liệu trên, trong quá trình thu thập kiến thức tôi còn tham khảo ý kiến của các chuyên gia là giảng viên có giảng dạy môn học nhập môn lập trình
Theo đó, tôi đã xây dựng cây yếu tố kiến thức với 8 nhánh chính bao gồm: Các vấn đề cơ bản của ngôn ngữ lập trình C; Các kiểu dữ liệu cơ sở; Hằng, Biến; Các toán
tử và biểu thức; Lệnh; Hàm; Dữ liệu có cấu trúc Mỗi nhánh chính có thể bao gồm từ
2 đến 7 nhánh con và độ sâu tối đa là 4
Trang 37Ví dụ yếu tố kiến thức về Biến
Biến
Khái niệm biến
Khai báo biến
Quy tắc đặt tên biến
Giá trị của biến
Vị trí khai báo biến (phạm vi)
3.2 Mô hình cho ngân hàng câu hỏi trắc nghiệm và việc thu thập
3.2.1 Mô hình của 1 câu hỏi trắc nghiệm
Câu hỏi trong phạm vi đề tài này là dạng câu hỏi trắc nghiệm khách quan gồm
có nội dung câu hỏi với 4 đáp án để lựa chọn, trong đó có 1 đáp án đúng nhất Với cấu trúc thông thường của một câu hỏi trắc nghiệm khách quan dạng có nhiều lựa chọn bao gồm 3 thành phần chính là nội dung (phần dẫn), các phương án để lựa chọn
và đáp án đúng của câu hỏi
Tuy nhiên, để phục vụ cho việc phân cấp độ và liên kết với các yếu tố kiến thức cần kiểm tra đánh giá của môn học nhập môn lập trình, đề tài này đã xây dựng một mô hình câu hỏi trắc nghiệm với 6 thành phần, ngoài 3 thành phần chính nói trên tôi đã đề xuất bổ sung thêm 3 thành phần tạo thành cấu trúc câu hỏi có 6 thành phần, bao gồm:
1 Khóa câu hỏi
2 Nội dung câu hỏi
3 Các sự lựa chọn (4 nội dung đáp án để lựa chọn)
4 Đáp án đúng
5 Mức độ của câu hỏi (dễ, trung bình, khó, khá khó)
6 Yếu tố kiến thức mà câu hỏi muốn kiểm tra, đánh giá
Qua quá trình nghiên cứu tôi nhận thấy để lưu trữ các thành phần trên của một câu hỏi trắc nghiệm ta có thể sử dụng 1 cấu trúc gồm 6 thành phần: Khóa câu hỏi
Trang 38(STT), nội dung hỏi, các đáp án, đáp án đúng, mức độ của câu hỏi (dễ, trung bình, khó, khá khó) và yếu tố kiến thức mà câu hỏi muốn kiểm tra, đánh giá
Mô hình như sau:
Cauhoi (khóa, nội dung câu hỏi, các đáp án, đáp án đúng, mức độ, yếu tố kiến thức)
Ví dụ: Câu 1 Lệnh nào trong các lệnh sau cho phép chuyển đến đầu vòng lặp,
chuẩn bị chu trình mới mà không cần phải thực hiện các lệnh còn lại của vòng lặp?
A break B goto C continute D return
Độ khó: Dễ
Đáp án đúng: C
Yếu tố kiến thức liên quan: lệnh ngắt
3.2.2 Mô hình ngân hàng câu hỏi trắc nghiệm
Danh sách câu hỏi trắc nghiệm là một tập hợp gồm nhiều (n) câu hỏi trắc nghiệm có cấu trúc và thành phần giống hệt nhau, vì vậy mô hình của danh sách các câu hỏi trắc nghiệm là một danh sách các thành phần có cấu trúc, mỗi cấu trúc có mô hình của 1 câu hỏi trắc nghiệm và được tổ chức lưu trữ dữ liệu dưới dạng một quan
Mức
độ khó
Khóa kiến thức
[khóa
câu hỏi]
[nội dung]
[mức
độ khó]
[khóa kiến thức]
3.2.3 Thu thập và xây dựng ngân hàng câu hỏi trắc nghiệm
Ngân hàng câu hỏi trắc nghiệm được xây dựng thông qua việc tìm kiếm, thu thập các câu hỏi từ các nguồn khác nhau như internet, sách bài tập, tài liệu tham khảo liên quan đến môn học cũng như các đề kiểm tra, đánh giá sinh viên tại các trường có
Trang 39sử dụng hình thức kiểm tra, đánh giá bằng hình thức thi trắc nghiệm Sau đó, các câu hỏi được phân tích, thống kê và tiến hành phân nhóm, đánh giá mức độ khó Trong quá trình phân tích và đánh giá, đề tài còn tham khảo ý kiến của các chuyên gia để nhằm nâng cao tính đúng đắn của việc xác định nội dung kiến thức đánh giá và mức
độ khó của câu hỏi trắc nghiệm
Ngoài ra, sau khi thu thập, tôi đã soạn thảo bổ sung một số câu hỏi thuộc các yếu tố kiến thức cơ sở của đề tài để phục vụ cho quá trình thử nghiệm hệ thống Ngân hàng câu hỏi thử nghiệm bao gồm các câu hỏi thuộc các yếu tố kiến thức cơ sở như Các vấn đề cơ bản của ngôn ngữ lập trình C; Các kiểu dữ liệu cơ sở; Hằng, Biến; Các toán tử và biểu thức; Lệnh; Hàm; Dữ liệu có cấu trúc Chúng được chọn lọc, đánh giá
và phân bổ vào 4 mức độ khó gồm Dễ, Trung bình, Khó, Khá khó
Từ các câu hỏi thuộc ngân hàng trên, ta có thể tạo ra các đề thi phục vụ cho việc kiểm tra, đánh giá kiến thức về môn học nhập môn lập trình Các thành phần chính của một đề thi bao gồm: Khóa, Mã đề, Các câu hỏi và được lưu trữ thành quan
hệ có dạng như sau:
[khóa] [Khóa đề thi] [Khóa câu hỏi]
3.3 Bảng liên kết giữa câu hỏi trắc nghiệm và yếu tố kiến thức
Bảng liên kết giữa câu hỏi trắc nghiệm và các yếu tố kiến thức thể hiện mối quan
hệ giữa một câu hỏi trắc nghiệm với yếu tố kiến thức mà nó cần kiểm tra, đánh giá, gồm 2 thành phần: khóa kiến thức, khóa câu hỏi trắc nghiệm
Qua quá trình nghiên cứu tôi nhận thấy để lưu trữ các thành phần trên ta sử dụng cấu trúc gồm 2 thành phần, cụ thể mô hình như sau:
Bảng 3.3 Bảng dữ liệu lưu trữ liên kết kiến thức
Khóa câu hỏi Yếu tố kiến thức
[khóa câu hỏi] [khóa yếu tố kiến thức]
Trang 40Sự liên kết giữa câu hỏi trắc nghiệm và các yếu tố kiến thức là chìa khóa để có thể kiểm tra, đánh giá được mức độ hiểu biết của sinh viên đối với một yếu tố kiến thức thông qua việc làm bài thi từ các câu hỏi trắc nghiệm đó Mối liên hệ này làm cơ sở cho quá trình suy luận và đưa ra các nhận xét, đánh giá kết quả bài thi
Chẳng hạn, khi sinh viên hoàn thành bài thi với 50 câu hỏi thuộc 3 yếu tố kiến thức gồm mảng, biến và kiểu dữ liệu thì chính việc phân tích và suy luận thông qua mối quan quan hệ liên kết giữa từng câu hỏi với từng yếu tố kiến thức, hệ thống có thể đánh giá yếu tố kiến thức nào sinh viên này còn hạn chế nhất, từ đó đưa ra định hướng cho sinh viên ôn tập, cải thiện
3.4 Tổ chức lưu trữ cơ sở dữ liệu và tri thức của hệ thống
Sau khi thiết kế các mô hình và thu thập dữ liệu liên quan, ta cần tổ chức việc lưu trữ các dữ liệu và tri thức đó trên máy tính Trong quá trình xử lý các tác vụ có thể phát sinh một số quan hệ phụ nhưng cơ bản cần có các quan hệ sau:
3.4.1 Các bảng dữ liệu
Khóa tri thức
Tên tri thức
Nội dung tri thức
Khóa node cha
Khóa câu hỏi Nội dung câu hỏi Lựa chọn A Lựa chọn B Lựa chọn C Lựa chọn D Đáp án đúng Mức độ khó Khóa tri thức
Tên người dùng Mật khẩu
Phân quyền
Khóa Khóa đề thi Khóa câu hỏi