NHIỆM VỤ VÀ NỘI DUNG: - Tìm hiểu các kiến thức và các nghiên cứu liên quan đến hệ thống gợi ý, - Trên cơ sở học liệu về lập trình và các dữ liệu đã thu thập từ nhiều năm, học viên cần
Trang 2Cán bộ hướng dẫn khoa học 1: TS Phạm Hoàng Anh
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 Chủ tịch: TS Nguyễn Đức Dũng
2 Thư ký: TS Nguyễn Tiến Thịnh
3 Phản biện 1: TS Trang Hồng Sơn
4 Phản biện 2: TS Lê Thị Thủy
5 Ủy viên: PGS.TS Huỳnh Tường Nguyên
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có).
VÀ KỸ THUẬT MÁY TÍNH
Trang 3
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: VŨ VĂN TIẾN MSHV: 2170579
Ngày, tháng, năm sinh: 03/04/1999 Nơi sinh: Quảng Ngãi Chuyên ngành: Khoa học Máy tính Mã số: 8480101
I TÊN ĐỀ TÀI: HỆ THỐNG GỢI Ý HỖ TRỢ THỰC HÀNH LẬP TRÌNH (RECOMMENDATION SYSTEM FOR PROGRAMMING PRACTICE)
II NHIỆM VỤ VÀ NỘI DUNG:
- Tìm hiểu các kiến thức và các nghiên cứu liên quan đến hệ thống gợi ý,
- Trên cơ sở học liệu về lập trình và các dữ liệu đã thu thập từ nhiều năm, học viên cần đánh giá, phân tích nhằm đề xuất giải pháp gợi ý học lập trình phù hợp với khả năng của người học,
- Xây dựng kiến trúc và hiện thực giải pháp đề xuất, sau đó cần tìm cách ứng dụng triển khai thử nghiệm ngoài thực tế,
- Đánh giá kết quả của hệ thống gợi ý đề xuất dựa trên bộ dữ liệu thu thập được trong quá trình triển khai thử nghiệm
III NGÀY GIAO NHIỆM VỤ: 06/02/2023
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 11/06/2023
V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): TS Phạm Hoàng Anh, PGS.TS Huỳnh Tường Nguyên
Trang 4Để hoàn thành được bài Luận văn Thạc sĩ này, tôi xin bày tỏ sự cảm kích đặc biệt tới các cốvấn của tôi, Tiến sĩ Phạm Hoàng Anh và Phó giáo sư Tiến sĩ Huỳnh Tường Nguyên - Nhữngngười đã định hướng, trực tiếp dẫn dắt và cố vấn cho tôi trong suốt thời gian thực hiện đề tàinghiên cứu khoa học Tôi xin gửi lời cảm ơn đến các thầy bằng tất cả tấm lòng và sự biết ơn củamình.
Tôi cũng xin gửi lời cảm ơn chân thành đến gia đình, những người luôn động viên và khuyếnkhích tôi hoàn thành Luận văn Thạc sĩ này
Xin chân thành cảm ơn tất cả mọi người!
Tp HCM, ngày 10 tháng 07 năm 2023
Học viên
Vũ Văn Tiến
Trang 5Trong bối cảnh nhu cầu nhân lực Công nghệ thông tin (CNTT) ngày càng tăng cao tại ViệtNam, thực hành lập trình trở nên quan trọng nhằm giúp người học rèn luyện và phát triển kỹnăng lập trình Luận văn đã tìm hiểu các kiến thức và nghiên cứu liên quan đến các Hệ thốngGợi ý trong lĩnh vực giáo dục nhằm hỗ trợ thực hành lập trình Từ đó, Luận văn đề xuất mộtkiến trúc hệ thống gợi ý chung giúp người học được gợi ý các bài tập phù hợp với khả năng
và tốc độ học tập cá nhân Kiến trúc gợi ý này được áp dụng tập trung vào gợi ý testcase trongBài tập lớn, nơi mà người học cần giải quyết một vấn đề lập trình phức tạp Phương pháp gợi
ý testcase được đề xuất kết hợp giữa phương pháp Hệ thống Gợi ý (Recommendation System RS) và Vùng phát triển gần (Zone of Proximal Development - ZPD) giúp đưa ra testcases phùhợp với năng lực của người học Một hệ thống gợi ý testcases được hiện thực để sử dụng thựctiễn trong quá trình triển khai bài tập lớn Đánh giá hệ thống được thực hiện thông qua phân tíchđặc điểm của hệ thống cũng như xem xét hiệu suất tương tác của người học Thông qua việcthực hành lập trình phù hợp, hệ thống hướng đến tăng cường sự hứng thú và khả năng tự họccủa người học
-Các từ khóa: Hệ thống Quản lý Học tập (LMS), Hệ thống Học tập thích ứng (ALS), Hệ
thống Gợi ý (RS), Hệ thống Gợi ý Testcases (TRS), Phương pháp Vùng phát triển gần (ZPD),Phương pháp phân tích suy biến (SVD)
Trang 6In Vietnam, the demand for Information Technology (IT) is growing rapidly, making cal programming skills increasingly important for learners to develop This thesis delves into therealm of educational recommendation systems to support programming practice The goal is topropose a comprehensive recommendation system architecture that suggests suitable exercisesbased on individual learners’ abilities and learning pace Specifically, the architecture focuses
practi-on recommending testcases for complex programming problems encountered in Assignments
By combining Recommendation Systems (RS) technique and the Zone of Proximal ment (ZPD), the proposed method ensures that the testcases provided align with learners’ ca-pabilities A practical testcase recommendation system is deployed and evaluated by analyzingits characteristics and assessing learners’ interaction performance Ultimately, through effectiveprogramming practice, the system aims to encourage learners’ enthusiasm and enhance theirself-learning abilities
Develop-Keywords: Learning Management System (LMS), Adaptive Learning System (ALS),
Rec-ommendation System (RS), Testcases Recommedation System (TRS), Zone of Proximal opment (ZPD), Singular Value Decomposition (SVD)
Trang 7Devel-Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của TS.Phạm Hoàng Anh và PGS TS Huỳnh Tường Nguyên Nội dung nghiên cứu và các kết quả đều
là trung thực và chưa từng được công bố trước đây Các nội dung nghiên cứu trình bày trong đây
đa phần là tôi tự tìm hiểu, phân tích và tổng hợp Tôi cũng có sử dụng một số nhận xét, đánh giá
và số liệu của các tác giả khác, cơ quan tổ chức khác Tất cả đều có trích dẫn và chú thích nguồngốc Nếu phát hiện có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm, trường Đại họcBách Khoa - ĐHQG Tp.HCM không liên quan đến những vi phạm tác quyền, bản quyền do tôigây ra trong quá trình thực hiện
Tp HCM, ngày 10 tháng 07 năm 2023
Học viên
Vũ Văn Tiến
Trang 81 Giới thiệu 1
1.1 Động cơ nghiên cứu 1
1.2 Mục tiêu nghiên cứu 3
1.3 Đối tượng và phạm vi nghiên cứu 3
1.4 Phương pháp nghiên cứu 3
1.5 Ý nghĩa của đề tài 4
1.6 Cấu trúc của Luận văn 5
2 Kiến thức nền tảng 6 2.1 Phân tích hồ sơ người học trong Hệ thống Quản lý Học tập (LMS) 6
2.1.1 Hệ thống Quản lý Học tập 6
2.1.2 Phân tích hồ sơ người học 7
2.1.3 Hệ thống Học tập Thích ứng (ALS) 8
2.2 Hệ thống Gợi ý trong lĩnh vực giáo dục (RS) 10
2.2.1 Hệ thống Gợi ý 10
2.2.2 Phương pháp Vùng phát triển gần (Zone of Proximal - ZPD) 14
2.2.3 Các phương pháp đánh giá Hệ thống Gợi ý 15
2.3 Kết chương 16
3 Hệ thống gợi ý hỗ trợ thực hành lập trình 17 3.1 Đề xuất kiến trúc hệ thống học tập thích ứng (ALS) 17
3.2 Hệ thống gợi ý testcase (TRS) 21
3.2.1 Quá trình gợi ý testcases 24
3.2.2 Phương pháp gợi ý testcases SVD-ZPD 25
3.3 Kết chương 26
4 Đánh giá kết quả 27 4.1 Đánh giá kiến trúc hệ thống ALS 27
4.2 Đánh giá Hệ thống Gợi ý Testcase (TRS) 29
4.3 Kết chương 39
Trang 9Tài liệu tham khảo 48
Trang 102.1 Khảo sát các hệ thống ALS trước đây 9
4.1 Thiết lập các thông số cho quá trình học tập thích ứng 29
4.2 Phản hồi của sinh viên về quá trình học tập thích ứng 29
4.3 Các đặc điểm trong triển khai BTL ở 3 học kỳ 31
4.4 So sánh sự triển khai BTL ở 3 học kỳ liên quan đến các yếu tố về môi trường 33
4.5 So sánh sự triển khai BTL ở 3 học kỳ liên quan đến các yếu tố về người học 34
4.6 Kết quả thống kê sau khi triển khai BTL ở 3 học kỳ 35
Trang 112.1 Ví dụ về câu hỏi CodeRunner 7
2.2 Các phương pháp trong Hệ thống Gợi ý - Recommendation System (RS) 11
2.3 Ví dụ về lọc cộng tác (slide từ khoá học Stanford CS246: Mining Massive Datasets) 11
3.1 Kiến trúc hệ thống thực hành lập trình thích ứng được đề xuất 18
3.2 Giao diện kết quả của Bộ phân loại câu hỏi 20
3.3 Quá trình gợi ý testcases 24
4.1 Cài đặt của một Bài thực hành bắt buộc 28
4.2 Ví dụ về Bài thực hành bắt buộc 28
4.3 Ví dụ về một Bài thực hành luyện tập 29
4.4 So sánh giữa nhóm người Use và Not-use TRS trong SEM-222 37
4.5 Phân bố số ngày người học nộp bài trên hai hệ thống 38
4.6 Số lượng yêu cầu testcases mới trên TRS trong 03/2023 39
Trang 12AGS Hệ thống chấm điểm tự động - Automatic Grading System 21, 23
ALS Hệ thống Học tập Thích ứng - Adaptive Learning System 8, 27, 39, 40, 42 BTL Bài tập lớn 1, 2, 4, 17, 21, 23, 24, 26, 27, 29, 30, 32, 35, 38–42
CBF Phương pháp lọc nội dung - Content-based filtering 10, 12, 14
CF Phương pháp lọc cộng tác - Collaborative filtering 12, 14
CNTT Công nghệ thông tin 1, 41
CP Code Practice 27
LMS Hệ thống Quản lý Học tập - Learning Management System 3, 6, 8
MF Phân rã Ma trận - Matrix Factorization 13
RS Hệ thống Gợi ý - Recommendation System x, 2, 10, 11, 13, 41
SVD Singular Value Decomposition 13, 14, 26
TB Trung bình 35, 36
TRS Hệ thống Gợi ý Testcases - Testcases Recommendation System 30, 38, 40, 42 ZPD Vùng phát triển gần - Zone of Proximal 4
ĐHBK Đại học Bách Khoa - ĐHQG TP.HCM 29, 40, 41
Trang 13Chương 1
Giới thiệu
Báo cáo về thị trường IT Việt Nam năm 2021 của TopDevthông báo rằng nhu cầu nhân lựcngành Công nghệ thông tin (CNTT) tại Việt Nam không ngừng tăng cao trong 5 năm 2018 -
2022 Dựa trên tốc độ tăng trưởng số lượng lập trình viên tại Việt Nam, năm 2021 Việt Nam cần450.000 nhân lực CNTT Tuy nhiên, tổng số lập trình viên tính đến Q1/2021 là 430.000, dẫnđến khoảng 20.000 vị trí lập trình viên bị thiếu hụt Số lượng sinh viên (SV) CNTT tốt nghiệphằng năm chuyên ngành phần mềm là khoảng 55.000, nhưng chỉ có khoảng 16.500 đáp ứngnhu cầu của doanh nghiệp1 Từ đó, Bộ Thông tin và Truyền thông đã thông qua Dự thảo Định
hướng phát triển ngành Thông tin và Truyền thôngnhằm tập trung đào tạo nhân lực CNTT Do
đó, nhu cầu đào tạo nhân lực CNTT cần được chú trọng quan tâm, đặc biệt là ở các trường đạihọc Tuy nhiên, với hiện trạng tại các trường đại học trong nước hiện nay, hầu hết số lượng ngườihọc trong lĩnh vực CNTT có số lượng khá lớn Trong đó, các môn học lập trình cơ bản là mônhọc nền tảng bắt buộc của sinh viên - dù theo học chuyên ngành nào trong CNTT Do vậy, cácmôn học lập trình cơ bản gặp thách thức trong việc hướng dẫn học một cách phù hợp cho sốlượng lớn người học
Người học ngành CNTT cần thực hành lập trình để rèn luyện kĩ năng như quan sát, giảiquyết vấn đề và tìm lỗi (debug) [1] Việc thực hành lập trình thường được thực hiện thông quagiải quyết các câu hỏi lập trình Câu hỏi lập trình thường có hai loại chính là thí nghiệm và Bàitập lớn (BTL) Trong đó, bài tập thí nghiệm là những bài tập nhỏ để người học luyện tập sau khi
đã học nội dung lý thuyết BTL là một bài tập phức tạp với nhiều yêu cầu và dùng để kiểm tratổng hợp các chủ đề lập trình khác nhau Thông qua BTL, người học luyện tập cách chia nhỏvấn đề thành các phần nhỏ hơn để xử lý Đồng thời, người học học cách sử dụng phối hợp các
kĩ thuật trong các chủ đề lập trình khác nhau để giải quyết một vấn đề phức tạp Cách đánh giáthường dùng của các bài tập lập trình là chạy mã nguồn trên một tập đầu vào (input) và kiểm
1 Báo cáo năm 2019 của Bộ GD & ĐT
Trang 14tra đầu ra (output) có trùng với đầu ra mong đợi hay không Đầu ra mong đợi thường là kết quảchạy mã nguồn đáp án của người dạy trên tập đầu vào Một bộ đầu vào, đầu ra mong đợi đượcgọi là một testcase Điểm cho bài tập lập trình được tính bằng tỉ lệ testcases đúng Số lượngtestcases của BTL thường nhiều hơn rất nhiều so với số lượng testcases của bài tập thí nghiệm.Nguyên nhân do BTL thường hỏi nhiều vấn đề nên cần có nhiều testcases để kiểm tra các khảnăng xảy ra.
Hiện nay, để hỗ trợ cho việc học tập được hiệu quả, hệ thống quản lý học liệu trực tuyến(LMS - Learning Management System) đã được sử dụng tại các trường Đại học Đơn cử vàthông dụng hiện nay, chúng ta có thể kể đến là Moodle LMS - hệ thống quản lý học tập trựctuyến hỗ trợ hiệu quả cho việc tạo, quản lý, và triển khai các khóa học trực tuyến Moodle LMScho phép cung cấp các loại câu hỏi khác nhau giúp đánh giá người học, trong đó loại câu hỏilập trình cũng được hỗ trợ thông qua tiện ích CodeRunner [2] Với CodeRunner, người học cóthể thấy được kết quả làm bài ngay lập tức trên Moodle LMS Từ đó, người học có hứng thú vàđộng lực để điều chỉnh câu trả lời ngay tại thời điểm làm bài Moodle LMS và CodeRunner đãgiúp hỗ trợ được số lượng lớn người học trong các môn học lập trình cơ bản
Để thu hút người học tương tác nhiều hơn, các hệ thống LMS cần tìm cách đưa ra các vấn
đề phù hợp với khả năng của từng người học Đây gọi là học tập Cá nhân hóa, nghĩa là việc học
tập mà trong đó tốc độ học và phương pháp hướng dẫn được tối ưu hóa cho từng người học; cáchoạt động học tập có ý nghĩa được thúc đẩy bởi sở thích của người học [3] Tuy nhiên, do mỗingười học có các đặc điểm khác nhau như hiệu suất học tập, tốc độ học tập, kiến thức từ trước,một nhóm bài tập thực hành lập trình cụ thể khó đáp ứng để phù hợp được với mọi đặc điểm củangười học Do vậy, đây là thách thức lớn của hệ thống số hóa hỗ trợ học tập trực tuyến LMS khi
mà có số lượng lớn người học có khả năng khác nhau cùng đăng ký học chung một khóa học
Hệ thống Gợi ý - Recommendation System (RS) là một phương pháp nhằm đề xuất nhữngsản phẩm hoặc thông tin có khả năng hữu ích và phù hợp với người dùng RS hoạt động dựatrên việc thu thập, phân tích dữ liệu người dùng về sở thích, hành vi tiêu dùng trong quá khứ
RS được sử dụng phổ biến và mang lại hiệu quả khi ứng dụng trong thương mại điện tử [4].Luận văn này hướng đến đề xuất kiến trúc hệ thống gợi ý bài tập thực hành lập trình phùhợp với khả năng người học Các kỹ thuật Hệ thống Gợi ý được tìm hiểu và áp dụng vào kiếntrúc gợi ý bài tập thực hành Kiến trúc này được tập trung áp dụng vào gợi ý testcase trong BTL.Kiến trúc hệ thống sẽ được triển khai và thu thập dữ liệu làm bài thực tế của người học Dữ liệuthực tế này được sử dụng để đánh giá lợi ích hệ thống đối với người học lập trình Từ đó, hệthống hướng đến tăng cường sự hứng thú và khuyên khích khả năng tự học khi được gợi ý cácbài tập phù hợp
Trang 151.2 Mục tiêu nghiên cứu
Trong khuôn khổ của Luận văn Thạc sĩ, báo cáo trình bày các nhiệm vụ đã thực hiện được,bao gồm các mục như sau:
• Tìm hiểu các kiến thức và các nghiên cứu liên quan đến hệ thống gợi ý (RS - dation system);
Recommen-• Trên cơ sở học liệu về lập trình và các dữ liệu đã thu thập từ nhiều năm, học viên đánhgiá, phân tích nhằm đề xuất giải pháp gợi ý học lập trình phù hợp với khả năng của ngườihọc;
• Xây dựng kiến trúc và hiện thực giải pháp đề xuất, sau đó tìm cách ứng dụng triển khaithử nghiệm ngoài thực tế;
• Đánh giá kết quả của hệ thống gợi ý đề xuất dựa trên bộ dữ liệu thu thập được trong quátrình triển khai thử nghiệm
Đối tượng nghiên cứu chính trong đề tài bao gồm các đối tượng liên quan đến:
• Môn học Kỹ thuật lập trình bao gồm các câu hỏi thực hành lập trình, các bài tập lớn liênquan;
• Nhóm đối tượng người học tham gia quá trình học lập trình có sử dụng hệ thống quản lýhọc liệu (LMS - Learning Management System)
Về giới hạn của Luận văn Thạc sĩ, phạm vi nghiên cứu được tập trung cụ thể như sau:
• Chỉ quan tâm đến môn Kỹ thuật lập trình dành cho sinh viên năm nhất tại khoa Khoa học
và Kỹ thuật Máy tính, trường Đại học Bách Khoa, Đại học Quốc Gia Tp.HCM
• Việc thực hành lập trình có thể được hỗ trợ gợi ý thông qua các bài tập lớn
• Thực hiện nghiên cứu xây dựng kiến trúc giải pháp trên hệ thống Moodle LMS có tíchhợp CodeRunner
Một số phương pháp được đề xuất sử dụng nhằm thực hiện công việc nghiên cứu trong Luậnvăn này bao gồm:
Trang 16• Phương pháp nghiên cứu lý thuyết: dựa trên tổng hợp các nghiên cứu có liên quan đến hệthống gợi ý từ nguồn các tài liệu như sách, báo, tạp chí đã công bố trong cộng đồng khoahọc và trên Internet.
• Phương pháp quan sát khoa học: với mục tiêu hướng đến hỗ trợ người học ngày càng tốthơn, học viên thu thập thông tin về các cách triển khai giảng dạy và hỗ trợ thực hành lậptrình từ trước nay Việc đánh giá, so sánh các hệ thống là phương pháp cơ sở được sử dụngtrong Luận văn làm nền tảng cho việc đề xuất giải pháp gợi ý testcase cho người học trongquá trình giải quyết bài tập lớn được giao
• Phương pháp mô hình hóa: đề xuất cách số hóa thông tin liên quan đến quá trình học vàgiải bài tập của người học nhằm hoàn thành nhiệm vụ trong các bài tập lớn
• Phương pháp phân tích logic: phân tích cấu trúc tương tác trên hệ thống Moodle LMShiện có cũng như cách thức tích hợp Code Runner vào, nhằm đề xuất kiến trúc tương tácvới người học phù hợp với thói quen học tập từ trước
• Phương pháp phân tích và tổng kết kinh nghiệm: giải pháp đề xuất chính yếu trong Luậnvăn được thử nghiệm trong thực tế và làm cơ sở để đánh giá mô hình đề xuất được hiệnthực thông qua sử dụng các phương pháp đánh giá về tính đúng đắn, về mức độ hiệu quảnhằm làm rõ mức độ khả thi khi áp dụng thực tiễn
Trong khuôn khổ của đề tài Luận văn Thạc sĩ, học viên đề xuất thử nghiệm các kỹ thuật củamột hệ thống gợi ý vào lĩnh vực giáo dục, cụ thể là gợi ý để người học có thể hoàn thành nhiệm
vụ cần thực hiện trong các câu hỏi thực hành lập trình
Xét về mặt khoa học, đóng góp của Luận văn cho thấy một hướng mới áp dụng các phươngpháp Hệ thống Gợi ý đã mang lại hiệu quả trong lĩnh vực thương mại điện tử, vào lĩnh vực Giáodục Cụ thể, Hệ thống gợi ý được áp dụng để gợi ý testcase cho người học trong quá trình làmBTL của môn học lập trình Mỗi người học sẽ có một mức độ và khả năng giải quyết vấn đềkhác nhau Do vậy, đối với mỗi người học, số lượng mẫu testcase cần gợi ý để hiểu bài và thiết
kế bài giải là khác nhau và còn phụ thuộc vào cảm quan tức thời của người học Luận văn đềxuất áp dụng phương pháp của Hệ thống Gợi ý và kết hợp phương pháp Vùng phát triển gần -Zone of Proximal (ZPD) để xác định mức độ khó phù hợp với người học Từ đó, phương pháp
đề xuất đưa ra gợi ý phù hợp với năng lực người học
Xét về mặt công nghệ, kết quả nghiên cứu cho thấy một môi trường tương tác học liệu mới
và có khả năng mở rộng triển khai cho các trường có đào tạo học lập trình, đặc biệt là có sửdụng hệ thống Moodle LMS Đây là ví dụ một minh họa plug-in trên Moodle để hỗ trợ ngườihọc phát triển phù hợp với năng lực của họ
Trang 17Xét về mặt thực tiễn, kết quả của Luận văn cho thấy được tiềm năng của các hệ thống gợi ý
- không chỉ áp dụng cho các lĩnh vực thương mai mà còn ứng dụng trong lĩnh vực giáo dục Kếtquả nghiên cứu là một hệ thống giúp người học làm các bài tập lập trình được gợi ý phù hợpvới khả năng người học Người học có thể làm các bài tập này theo tốc độ và hoàn cảnh của cánhân Người học nhanh có thể gặp các câu hỏi khó để cảm thấy được sự thách thức; ngược lại,người học còn chậm sẽ tiếp xúc với nhiều câu hỏi dễ hơn Từ đó, khi người học cảm thấy các bàitập là phù hợp, tác giả mong rằng người học sẽ có nhiều hứng thú và tự học nhiều hơn Ngườihọc rèn luyện được khả năng tự học sẽ tăng khả năng theo kịp các yêu cầu của chương trình đàotạo, hơn nữa là các yêu cầu công việc ở doanh nghiệp Từ đó, hệ thống hướng đến góp phần đàotạo nhân lực CNTT chất lượng cho nhu cầu thực tiễn từ doanh nghiệp
Nhằm làm rõ công sức thực hiện trong Luận văn này, báo cáo sẽ bao gồm các chương có nộidung chính như sau:
• Chương 1 - Giới thiệu: chương này trình bày về tổng quan vấn đề cần phải nghiên cứu,
trong đó bao gồm động cơ thực hiện đề tài, nhiệm vụ/mục tiêu nghiên cứu, đối tượng vàphạm vi nghiên cứu, và các tác động từ kết quả thu được thông qua đề tài
• Chương 2 - Kiến thức nền tảng: chương này sẽ tổng hợp và phân tích các kiến thức nền
tảng, các công trình nhiên cứu và các kết quả liên quan; được chia thành bốn nhóm: phântích hồ sơ người học trong Hệ thống Quản lý Học tập, Hệ thống Gợi ý, và các phươngpháp đánh giá Hệ thống gợi ý
• Chương 3 - Giải pháp đề xuất: chương này đề xuất một kiến trúc giải pháp chung nhằm
hướng đến gợi ý cho người học thực hành lập trình trong quả trình giải các bài tập thựchành lập trình từ câu hỏi đơn giản đến các bài tập lớn Từ đó, học viên đề xuất triển khai
cụ thể hơn vào trường hợp phức tạp nhất - đó là hỗ trợ gợi ý người học để hoàn thànhnhiệm vụ thực hiện trong các bài tập lớn
• Chương 4 - Đánh giá kết quả: chương này trình bày các kết quả từ việc phân tích định
tính nhằm nêu bật hệ thông gợi ý đề xuất cũng như môi trường mới dùng cho việc hỗtrợ thực hành lập trình thông qua bài tập lớn Chương này cũng trình bày về kết quả thựcnghiệm thu được và đánh giá kết quả của giải pháp khi áp dụng thực tiễn
• Chương 5 - Kết luận: đánh giá lại toàn bộ các kết quả mà đề tài đã thực hiện và đạt được
trong quá trình thực hiện Luận văn Thạc sĩ này Chương này cũng chỉ ra những khó khăntrong quá trình thực hiện cũng như các giới hạn của kết quả, và từ đó đề xuất những hướngphát triển tiếp theo
Trang 18Chương 2
Kiến thức nền tảng
Trong chương này, một số kiến thức nền tảng được trình bày để hiểu rõ hơn về các khái niệm
và phương pháp liên quan đến hệ thống gợi ý trong lĩnh vực giáo dục Đầu tiên, các kỹ thuậtphân tích hồ sơ người học trên các Hệ thống Quản lý Học tập - Learning Management Systemđược giới thiệu Tiếp theo, các hệ thống gợi ý trong lĩnh vực giáo dục được khảo sát gồm: Hệthống Gợi ý và Vùng phát triển gần Sau cùng, chương này trình bày một số phương pháp đánhgiá cho Hệ thống Gợi ý trong lĩnh vực giáo dục
tập (LMS)
2.1.1 Hệ thống Quản lý Học tập
Hệ thống Quản lý Học tập - Learning Management System (LMS) là một công cụ sử dụngtrong giáo dục, có thể được thiết kế như một ứng dụng hoặc một trang web, giúp hỗ trợ choviệc học tập trực tuyến, tự động hóa các công việc quản lý, triển khai các khóa học, tài liệu họctập và các hoạt động liên quan [5] Tác giả trong nghiên cứu [6] nhấn mạnh rằng một LMS nênnăng động, linh hoạt, có khả năng tùy chỉnh và thích ứng
Bên cạnh đó, Moodle là một LMS mã nguồn mở với số lượng người dùng lớn Theo nghiêncứu [5] được thực hiện ở năm 2020, Moodle có gần 100.000 trang web đã đăng ký ở 229 quốcgia Moodle cung cấp các loại câu hỏi đánh giá khác nhau cho người học như câu hỏi trắcnghiệm, trả lời ngắn, câu hỏi ghép cặp, v.v
Mặt khác, câu hỏi lập trình là loại câu hỏi cần thiết cho người học trong các khóa học lậptrình Các câu hỏi lập trình thường yêu cầu người học nộp lên hệ thống mã nguồn được viết trênmột ngôn ngữ lập trình nhất định Hệ thống cần có khả năng biên dịch mã nguồn thành chươngtrình và chạy chương trình này Các câu hỏi lập trình đã được hỗ trợ trên Moodle thông quatiện ích CodeRunner [2] Hình 2.1 minh họa kết quả làm bài của người học trên một câu hỏi
Trang 19(a) Mô tả đề (b) Vùng điền mã nguồn của người học
(c) Kết quả chấm điểm Hình 2.1: Ví dụ về câu hỏi CodeRunner
CodeRunner liên quan đến ngôn ngữ lập trình C++ Hình 2.1a minh họa mô tả đề của một câuhỏi CodeRunner Trong mô tả đề này còn có một số testcases mẫu giúp người học hiểu rõ mô
tả hơn Hình 2.1b minh họa vùng điền mã nguồn của người học Người học có thể viết trực tiếp
mã nguồn vào vùng này và CodeRunner sẽ điền mã nguồn này vào một vùng xác định trongmột chương trình Do đó, tuy mã nguồn này không có hàm main (một hàm bắt buộc phải có đểchạy chương trình C++) nhưng chương trình vẫn có thể chạy được Hình 2.1c sẽ được hiển thịsau khi người dùng nhấn nút nộp mã nguồn CodeRunner sẽ chạy mã nguồn của người học trênmột số testcases có sẵn Kết quả thường gồm đầu vào, đầu ra mong đợi và đầu ra từ mã nguồncủa người chạy Nếu hai đầu ra này giống nhau, người học sẽ thấy màu xanh được tô màu trêntestcases đó Điểm của người học bằng số testcases đúng trên tổng số testcases
Việc sử dụng CodeRunner mang lại ưu điểm cho cả người dạy và người học [2] Người dạycảm thấy hài lòng vì có thể đánh giá trực tiếp kỹ năng lập trình thông qua kết quả chấm bài nộpcủa người học được trả về ngay lập tức Từ đó người dạy có thể xem xét liệu người học có hiểuđược nội dung mà người dạy vừa giảng hay không? Người dạy cũng có thể xem mã nguồn củangười dạy tại trang quản lý kết quả và xem thử người học gặp lỗi gì ở mã nguồn Người họccũng có phản ứng tích cực đến kết quả phản hồi mà họ nhận được Họ có thể thấy kết quả chấmbài, tìm lỗi và sửa lỗi ngay lập tức sau khi nộp bài
2.1.2 Phân tích hồ sơ người học
Phân tích hồ sơ người học là một kỹ thuật phổ biến để tạo điều kiện cho việc cá nhân hóatrong các hệ thống hỗ trợ học tập [7] Phân tích hồ sơ người học bao gồm việc thu thập dữ liệu
Trang 20về đặc điểm, sở thích, hành vi của người học Dữ liệu về hồ sơ người học thu thập được có thểđược sử dụng để tùy chỉnh trải nghiệm học tập theo nhu cầu cá nhân, cung cấp gợi ý cá nhânhóa, điều chỉnh nội dung và chiến lược giảng dạy, và hỗ trợ quy trình ra quyết định trong LMS.
Nó giúp người dạy có cái nhìn sâu hơn về tiến trình học tập, điểm mạnh, điểm yếu và sở thíchcủa người học, từ đó tăng cường hiệu quả và hiệu suất của quá trình học tập Các nghiên cứutrước đây trong LMS chia Phân tích hồ sơ người học thành 2 phương pháp chính [7,8]
a) Phân tích tường minh (explicit profiling): Phân tích tường minh liên quan đến việc thu
thập thông tin trực tiếp từ người học thông qua các khảo sát, bảng câu hỏi hoặc bảng tựđánh giá [9] Loại phân tích này cho phép người học cung cấp thông tin về sở thích, mụctiêu, kiến thức đã có (prior-knowledge) và sở thích học tập của họ Điểm thuận lợi củaphương pháp này là người học có khả năng xác định và kiểm soát các thông tin cung cấpcho hệ thống [10] Tuy nhiên, người học cũng tốn nhiều nỗ lực để nhập các dữ liệu chophương pháp phân tích tường minh [10]
b) Phân tích ngầm định (implicit profiling): Phân tích ngầm định liên quan đến việc thu
thập dữ liệu về người học một cách không công khai và không cần người học phải chủđộng cung cấp thông tin Việc này có thể được thực hiện thông qua việc theo dõi tươngtác của người học trong LMS Một số ví dụ về dữ liệu phân tích ngầm định như dữ liệunháy chuột (click-through) [9, 11], lịch sử hoạt động học tập trên hệ thống [9, 12], thờigian dành cho các hoạt động khác nhau như xem video, làm bài tập, hoặc kết quả trongcác bài kiểm tra, Phân tích ngầm định hướng đến hiểu hành vi, mô hình và nhu cầu củangười học dựa trên hành động và tương tác của họ trong môi trường học tập Người họccảm thấy rằng phương pháp phân tích ngầm định có phần tiện lợi hơn phân tích tườngminh với sự chấp nhận có ít sự vi phạm quyền riêng tư của người dùng [13]
2.1.3 Hệ thống Học tập Thích ứng (ALS)
Hệ thống Học tập Thích ứng - Adaptive Learning System (ALS) là hệ thống nhằm cung cấpmột trải nghiệm học tập hiệu quả và tùy chỉnh cho phù hợp với người học [14] ALS sử dụng dữliệu về quá trình học tập và các thuật toán, mô hình để phân tích dữ liệu học tập, nhận diên môhình học tập của người học Từ đó, hệ thống có khả năng điều chỉnh mức độ khó, tốc độ, phongcách giảng dạy, và cung cấp phản hồi phù hợp để tối ưu hóa quá trình học tập cho từng ngườihọc Trong khuôn khổ luận văn này, một số ALS được khảo sát với hai yếu tố quan tâm: cáchthức mà ALS xác định năng lực của người học, và cách thức gợi ý học liệu của ALS Bảng 2.1ghi lại kết quả khảo sát trên 5 hệ thống ALS
a) Nhận xét về cách thức xác định năng lực người học
Một cách xác định năng lực người học là áp dụng phân tích tường mình như yêu cầu ngườihọc làm các bài kiểm tra [15, 17, 16] Tuy không được đề cập rõ trong các nghiên cứu,
Trang 21Bảng 2.1: Khảo sát các hệ thống ALS trước đây
Bài báo Cách thức xác định năng lực người học Cách thức gợi ý học liệu
[ 15 ]
Người học cần làm một bài kiểm ở cuối mỗi
chương của môn học Nếu người học vượt qua bài
kiểm tra này thì người học sẽ được học chương tiếp
theo.
Hệ thống sử dụng thuật toán k-NN để tìm k người
đã làm bài kiểm trả và có kết quả giống với người dùng mục tiêu Sau đó, hệ thống xem xét tất cả tài liệu học tập mà k người học này sử dụng Những tài liệu học tập được có thời gian sử dụng nhiều hơn thời gian sử dụng trung bình của tất cả học liệu sẽ được đưa cho người dùng mục tiêu.
[ 16 ]
Hệ thống dùng tỉ lệ số câu hỏi làm sai của người
học để phân loại người học thành 3 mức độ: thấp,
trung bình, cao Bên cạnh đó, một bảng câu hỏi
về phong cách học tập được sử dụng để nhận dạng
phong cách học tập cá nhân của người học.
Một bảng quan hệ được sử dụng để tìm ra vấn đề của từng phong cách học và đưa ra hướng dẫn phù hợp Kết hợp với phong cách của người học, hệ thống điều chỉnh loại của các học liệu để phù hợp với mỗi người học.
[ 17 ]
Một bảng câu hỏi trắc nghiệm về kiến thức của
người học được đưa ra để xác định mức độ của
người học.
Không đề cập.
[ 18 ]
Dựa trên tương tác với hệ thống, một bản ghi hoạt
động được phân tích để xác định phong cách học
của mỗi người.
Hệ thống sử dụng mỗi chuỗi các Chuẩn đầu ra môn học để gợi ý đến người học Hệ thống tính toán điểm xếp hạng cho mỗi Chuẩn đầu ra và sắp xếp các Chuẩn đầu ra này cho phù hợp với phong cách học của mỗi cá nhân.
[ 19 ]
Người học cần làm đủ nhiều câu hỏi trong mỗi chủ
đề để thể hiện là đã đạt được chủ đề đó Tuy nhiên,
bài báo chưa nói rõ số lượng câu hỏi như thế nào là
đủvới một người học.
Hệ thống đề xuất sử dụng Mũi tên mục tiêu (target
arrow) để hướng người học đến những chủ đề cần học Mũi tên này sẽ đánh dấu chủ đề nào đã đạt, chủ đề nào chưa đạt, hoặc chủ đề nào là cần phải học trước khi học một chủ đề xác định.
phương pháp làm bài kiểm tra cần người dạy tham gia để tạo ra các bài kiểm tra này Nóicách khác, cách xác định năng lực người học phụ thuộc một phần vào các yêu cầu, kỳvọng từ người dạy Mặt khác, nếu không có sự tham gia của người dạy, hệ thống có thể
áp dụng phân tích ngầm định để đo lường các đặc điểm dựa trên bản ghi tương tác với hệthống [18,19]
Hạn chế của phương pháp làm kiểm tra là có thể gây khó chịu cho người học nếu cần phảikiểm tra thường xuyên Tuy nhiên, phương pháp này có sự tham gia của người dạy Ngườidạy phụ trách môn học thường có nhiều kinh nghiệm trong lập trình và giảng dạy, vì vậy
họ có những kỳ vọng hợp lý đối với các kiến thức cần đạt được Do vậy, người dạy nênđược tham gia vào quá trình kiểm tra và cung cấp các kỳ vọng để yêu cầu người học đạtđược kiến thức cụ thể Bên cạnh đó, hệ thống gợi ý đề xuất hướng đến là một môi trường
mở và ít áp lực cho người học Các bài kiểm tra nên được hạn chế để hỗ trợ người họcluyện tập tự do trên hệ thống
b) Nhận xét về cách thức gợi ý học liệu
Về cách thức gợi ý, các hệ thống trong [15,17] đề xuất tài liệu dựa trên các người học có
Trang 22năng lực tương tự với năng lực người học mục tiêu Trong khi đó, các hệ thống ở [18,19]
đề xuất người học cần làm lại các câu hỏi về chủ đề mà học mắc nhiều lỗi Việc làm lạicác câu hỏi là một hình thức giúp người học duy trình khả năng học tập Duy trì học tập
hỗ trợ người học chuyển kiến thức mới vào bộ nhớ dài hạn để người học hiểu kiến thức
đó và nhận dạng được bài toán sử dụng kiến thức này trong tương lai Lập trình là mônhọc mà người học cần rèn luyện để có được kỹ năng quan sát, giải quyết vấn đề và gỡ lỗi.Các câu hỏi được trả lời đúng một lần không thể đảm bảo rằng người học đã nắm vữngcâu hỏi đó Tác giả trong nghiên cứu [1] cho rằng lập trình cần được thực hiện học bằng
cách làm(learn-by-doing) hơn là học thuộc lòng các câu hỏi Do đó, hệ thống đề xuất sẽhướng đến duy trì học tập bằng cách đưa ra lặp lại các câu hỏi mà người học đã làm saocho hợp lý
2.2.1 Hệ thống Gợi ý
RS trở nên phổ biến và được sử dụng rộng rãi trong thương mại điện tử và các công ty số[4] Một số ví dụ nổi tiếng về những hệ thống như vậy bao gồm hệ thống gợi ý phim của Netflix[20], hệ thống gợi ý sản phẩm của Amazon [21], tin tức cá nhân hóa của Google [22], tìm kiếmquảng cáo của Google [22], gợi ý video của YouTube [22], và Last.fm cho âm nhạc [22] Hệthống gợi ý chủ yếu được sử dụng cho hai nhiệm vụ chính: đưa ra dự đoán và đưa ra gợi ý[23,22] Nhiệm vụ đưa ra dự đoán liên quan đến việc dự đoán người dùng sẽ đánh giá một sảnphẩm nào đó bằng bao nhiêu điểm Điểm số đánh giá này thể hiện mức độ ưa thích của ngườidùng cho sản phẩm Nhiệm vụ đưa ra gợi ý liên quan đến việc gợi ý một tập hợp các sản phẩmcho người dùng Hệ thống gợi ý thu thập thông tin về hành vi trong quá khứ của người dùng đốivới một tập hợp các sản phẩm và sử dụng chúng để gợi ý Hình 2.2 minh họa các phương pháptrong RS Các phương pháp này sẽ được trình bày chi tiết ở các phần tiếp theo
a) Phương pháp lọc nội dung - Content-based filtering (CBF):
CBF cung cấp các gợi ý dựa trên các đặc điểm của người dùng và các sản phẩm, thườngđược tạo dựa trên các sản phẩm mà người dùng tiêu thụ trong quá khứ Các sản phẩmđược gợi ý là những sản phẩm có các đặc điểm tương tự với các sản phẩm được đánh giácao của người dùng mục tiêu [24]
Hình 2.3 minh hoạ một ví dụ cho CBF Trong hình, người dùng đã sử dụng và đánh giácao các hình: tròn đỏ và tam giác đỏ Từ các hình này CBF xác định các đặc điểm cầnquan tâm là hình tròn, hình tam giác và có màu đỏ đỏ Sau đó, hệ thống sẽ gợi ý các sảnphẩm cũng có các đặc điểm này và gợi ý cho người dùng
Trang 23Hình 2.2: Các phương pháp trong RS
Hình 2.3: Ví dụ về lọc cộng tác (slide từ khoá học Stanford CS246: Mining Massive Datasets)
Trang 24Phương pháp CBF có những ưu điểm đáng chú ý [25] Đầu tiên, phương pháp này khôngyêu cầu dữ liệu từ những người dùng khác Điều này có nghĩa là có thể gợi ý các sản phẩmdựa trên sở thích riêng của từng người dùng Thứ hai, CBF cho phép tạo ra gợi ý cá nhâncho mỗi người dùng Dựa trên đặc điểm và sở thích của người dùng, hệ thống có thể tìmkiếm và đề xuất những sản phẩm phù hợp với từng người dùng cụ thể Cuối cùng, phươngpháp này cung cấp khả năng giải thích về sản phẩm được gợi ý Bằng cách liệt kê các đặcđiểm của sản phẩm, người dùng có thể hiểu rõ hơn về lý do tại sao sản phẩm được gợi ý
và có thể đáp ứng được sở thích của mình
Bên cạnh đó, CBF cũng có những hạn chế cần chú ý Đầu tiên, việc xác định các đặc điểmquan trọng cần quan tâm trong phương pháp này có thể khó khăn Cần phải xác định rõnhững đặc điểm này để có thể đánh giá tương quan giữa các sản phẩm Thứ hai, xây dựng
hồ sơ cho người dùng mới là một thách thức vì CBF cần phải có đủ thông tin về sở thích
và đặc điểm của người dùng Tuy nhiên, việc thu thập các thông tin này đòi hỏi thời gian
và công sức Một hạn chế khác của phương pháp này là sự chuyên môn quá cao cho từngngười học CBF chỉ đề xuất các mục dựa trên hồ sơ nội dung của người dùng và không
mở rộng ra để đề xuất những mục nằm ngoài phạm vi đó Điều này có thể hạn chế khảnăng khám phá và mở rộng sở thích của người dùng Thêm vào đó, CBF không xem xétkhả năng người dùng có thể có nhiều sở thích và quan tâm đến nhiều lĩnh vực khác nhau.Điều này có thể giới hạn sự đa dạng và sự phong phú của các sản phẩm được đề xuất.Cuối cùng, phương pháp này không khai thác được thông tin từ đánh giá và phản hồi củanhững người dùng khác Điều này có thể bỏ qua thông tin quan trọng về đánh giá và phảnhồi từ cộng đồng người dùng
Tóm lại, phương pháp content-based filtering mang lại sự linh hoạt và cá nhân hóa trongviệc gợi ý sản phẩm cho người dùng, đồng thời cung cấp khả năng giải thích và tùy chỉnhcho từng cá nhân
b) Phương pháp lọc cộng tác - Collaborative filtering (CF):
CF hoạt động dựa trên ý tưởng các người dùng có hành vi tương tự sẽ có sở thích hoặcthói quen mua sắm tương tự [4] Phương pháp này không sử dụng đặc điểm của sản phẩm
để đưa ra gợi ý Thay vào đó, CF tìm các người dùng tương tự với người dùng mục tiêu vàgợi ý các sản phẩm mà nhóm người dùng tương tự thích Độ tương tự này không khôngđược tính dựa trên hồ sơ người dùng hay đặc điểm sản phẩm, mà dựa trên đánh giá mức
độ ưa thích của người dùng cho sản phẩm Dữ liệu đánh giá thường được biểu diễn thànhmột ma trận có người dùng biểu diễn theo dòng và sản phẩm biểu diễn theo cột Một phần
tử trong ma trận biểu diễn điểm đánh giá của người dùng ở hàng cho sản phẩm ở cột tươngứng Do vậy, ma trận đánh giá này còn thường được gọi là ma trận Người dùng-Sản phẩm(user-item) Dựa trên cách xử lý dữ liệu trong ma trận đánh giá, CF được chia thành hai
Trang 25phương pháp nhỏ hơn là phương pháp dựa trên bộ nhớ (memory-based) và phương pháp
dựa trên mô hình(model-based) [26][27]
Phương pháp dựa trên bộ nhớ trong hệ thống gợi ý sử dụng các độ đo tương tự giữa các
người dùng hoặc các sản phẩm để xác định những hàng xóm liên quan [4] Những hàngxóm này sau đó được sử dụng để gợi ý hoặc dự đoán các sản phẩm Phương pháp này cungcấp cách thức triển khai và diễn giải kết quả một cách dễ dàng Tuy nhiên, phương phápnày yêu cầu toàn bộ ma trận đánh giá, làm cho nó ít phù hợp với dữ liệu có số chiều cao và
thưa thớt Phương pháp dựa trên bộ nhớ còn được chia thành hai phương pháp nhỏ hơn
là phương pháp dựa trên người dùng (User-based) và phương pháp dựa trên sản phẩm
(Item-based)
Phương pháp dựa trên người dùng thường gồm các bước sau [28]:
• Xem xét người dùng mục tiêu x và một sản phẩm i chưa được đánh giá
• Tìm một tập gồm các người dùng khác Xem xét đánh giá của các người dùng này
so với đánh giá của người dùng x Sau đó chọn ra k người dùng có đánh giá tương tựvới người dùng mục tiêu nhất
• Dựa vào k người dùng này để tính điểm đánh giá cho sản phẩm i
Phương pháp dựa trên sản phẩm thường gồm các bước sau [29]:
• Với sản phầm i đang quan tâm, tìm k sản phẩm khác tương tự với sản phẩm i Độtương tự này được tính dựa trên đánh giá của các người dùng khác
• Dự đoán điểm đánh giá cho sản phẩm i dựa trên k sản phẩm khác
Bên cạnh đó, phương pháp dựa trên mô hình học và điều chỉnh một mô hình tham số
cho ma trận đánh giá Người dùng-Sản phẩm Mô hình này sau đó được sử dụng để thựchiện các nhiệm vụ đưa ra gợi ý Phân rã Ma trận - Matrix Factorization (MF) là một kỹthuật trong phương pháp dựa trên mô hình đã trở nên phổ biến, đặc biệt sau Cuộc thiNetflix Prize [27] Các mô hình MF nổi tiếng với độ chính xác tương đối cao, khả năng
mở rộng và giảm số chiều [4] Phương pháp MF sử dụng trong RS bao gồm PrincipalComponent Analysis (PCA), Probabilistic Matrix Factorization (PMF) and Non-negativeMatrix Factorization (NMF) Trong khuôn khổ luận văn này, mô hình khảo sát là mô hìnhSingular Value Decomposition (SVD) được phát hiện là có hiệu suất tốt hơn phương phápdựa trên bộ nhớ trên dữ liệu về phim và thương mại điện tử [4]
Phương pháp SVD thực hiện thu giảm số chiều của ma trận đánh giá người dùng-sảnphẩm và tạo ra ma trận xấp xỉ có hạng thấp hơn Ma trận này đại diện cho các đặc điểmtiềm ẩn (latent features) của người dùng và sản phẩm đang có trong ma trận đánh giá Ví
dụ, đối với sản phẩm thì các đặc điểm tiềm ẩn có thể là giá hoặc thương hiệu; đối với
Trang 26phim thì đặc điểm tiềm ẩn có thể là thể loại Các ma trận xấp xỉ hạng thấp được sử dụng
để thực hiện các nhiệm vụ gợi ý cho các đánh giá mới và chưa được đánh giá trong matrận người dùng-vật phẩm Thách thức chính của SVD là việc tìm ra hạng (thấp hơn hạngban đầu) của ma trận thu giảm sao cho phù hợp
Phương pháp SVD được thực hiện dựa trên ma trận đánh giá người dùng-sản phẩm Matrận này được phân tích thành 3 ma trận: U, Σ, VT Trong đó, U là ma trận biểu diễn mốiliên hệ giữa người dùng và đặc điểm tiềm ẩn, Σ là ma trận đường chéo gồm các giá trị đơn(singular values), và VT là ma trận biểu diễn mối liên hệ giữa sản phẩm và đặc điểm tiềm
ẩn Tiếp theo, SVD thực hiện giảm chiều dữ liệu Giảm chiều dữ liệu là thao tác chọn kgiá trị đơn lớn nhất tương ứng với k yếu tố tiềm ẩn quan trọng nhất k giá trị đơn trong Σ
và các cột tương ứng của chúng trong U và VT được giữ lại Ta gọi các ma trận chỉ giữ lại
kyếu tố tiềm ẩn là các ma trận thu giảm (reduced matrix) Cuối cùng, để tạo ra gợi ý, matrận thu giảm U và VT được nhân với nhau để thu được ma trận đánh giá thu giảm Matrận này có thể được sử dụng để dự đoán các đánh giá bị thiếu hoặc chưa được khám phácủa người dùng đối với các sản phẩm
c) Phương pháp kết hợp (hybrid) kết hợp CBF và CF để cung cấp độ chính xác dự đoán
cao hơn cả hai [27]
2.2.2 Phương pháp Vùng phát triển gần (Zone of Proximal - ZPD)
Học tập cá nhân hóa được định nghĩa là "hướng dẫn mà trong đó tốc độ học tập và phươngpháp giảng dạy được tối ưu hóa cho nhu cầu của mỗi người học" [3] Một cách để đạt được điềunày là đánh giá năng lực và nhu cầu của người học một cách linh hoạt Hệ thống nên sử dụngthông tin đánh giá này để điều chỉnh mức độ tài liệu cho phù hợp với Vùng phát triển gần (ZPD)của người học Lý thuyết ZPD cho rằng người học sẽ "thất vọng" nếu hướng dẫn quá khó, hoặc
"cảm thấy không gặp thách thức" nếu hướng dẫn quá đơn giản; mức độ lý tưởng của tài liệu họctập nên phù hợp với "vùng" (zone) giữa giới hạn khả năng cao nhất và thấp nhất của mỗi cánhân người học [9,30]
Sau đó, các nghiên cứu [31, 32] đã cố gắng đưa ra một định nghĩa rõ ràng hơn về ZPD sovới những tài liệu phác thảo ban đầu của Vygotsky [30] nhằm ứng dụng vào các hệ thống hướngdẫn học tập Nghiên cứu [31] đưa ra định nghĩa hoạt động của ZPD và gọi nó là SZPD SZPDgiới thiệu có 2 tiêu chí thường dùng:
a) Tiêu chí thành thạo (Mastery criterion): Tiêu chí thành thạo xác định khi nào người
học có thể tiến tới nội dung tiếp theo Tiêu chí này yêu cầu người học làm đúng M trong
số N câu trả lời gần nhất Phương pháp này có tính chất là các câu hỏi đã được giải trướckhi cửa sổ di chuyển N câu hỏi không ảnh hưởng đến điểm số, tức là các lỗi cũ được xemnhư được tha thứ Ví dụ, một chuỗi gợi ý được cho khi trả lời các câu hỏi lần lượt là (3, 1,
Trang 270, 0) Học sinh cần 3 gợi ý cho câu hỏi đầu tiên, 1 gợi ý cho câu hỏi thứ hai, và sau đó trảlời đúng hai câu hỏi tiếp theo mà không cần gợi ý Chuỗi này đạt được sự thành thạo theo
tiêu chí làm đúng hai câu đúng trong ba câu gần nhất.
b) Tiêu chí ZPD: Tiêu chí ZPD dựa trên số lượng gợi ý mà người học cần sử dụng để vượt
qua một bộ câu hỏi cho trước Người học cần sử dụng một số lần gợi ý phù hợp xác địnhthông qua 3 tham số:
• H: số lượng gợi ý mục tiêu trong mỗi bộ câu hỏi
• DH: sự biến đổi cho phép trong H để xem xét trạng thái năng lực của người học là
nằm trong ZPD
• P: số lượng tối thiểu các câu hỏi mà người học được đảm bảo cần phải giải quyết.
SZPD định nghĩa H∗ là số lượng gợi ý thực tế mà người học cần trong một bộ câu hỏi; vàđịnh nghĩa Z = H∗− H Khu vực Z > DH mô tả vùng mơ hồ khi câu hỏi quá khó, và khu vực
Z< −DH mô tả vùng nhàm chán khi câu hỏi quá dễ
2.2.3 Các phương pháp đánh giá Hệ thống Gợi ý
Việc đánh giá Hệ thống Gợi ý cho quá trình học tập thường được thực hiện theo 3 phươngpháp chính là độ chính xác, sự hài lòng của người học và hiệu suất học tập [23,33] Các phươngpháp này sẽ được trình bày chi tiết ở các nội dung sau
Ví dụ khi áp dụng phương pháp độ chính xác trong lĩnh vực giáo dục, phần 1 của dữ liệuđang qua tâm là tương tác giữa người học với các câu hỏi trong chủ đề Mảng ở tuần học 1
Phần 2 ghi lại kết quả làm bài của người học với câu hỏi Tìm số nhỏ nhất trong một mảng
cho trước Dữ liệu ở Phần 1 được đưa vào mô hình gợi ý, mô hình này ước lượng được sốđiểm mà người học A làm cho câu hỏi trên là 9 điểm Giả sử Phần 2 của dữ liệu ghi nhậnngười dùng A làm được 8 điểm Độ chênh lệch giữa điểm 9 và điểm 8 là một ví dụ về độchính xác mà phương pháp này quan tâm Độ chính xác có một số thang đo thường được
sử dụng như precision, recall, F1, MAP, NDCG.
Trang 28b) Sự hài lòng của người học Sự hài lòng của người học thường được thu thập trực tuyến
khi người dùng đang sử dụng hệ thống hoặc sau khi sử dụng hệ thống Phương pháp nàythường tạo một bảng các phát biểu về hệ thống và nhờ người học đánh giá điểm thể hiệnmức độ đồng ý với mỗi phát biểu này
c) Hiệu suất học tập
Đánh giá hiệu suất học tập cũng là một phương pháp thí nghiệm trực tuyến Mục tiêu củaphương pháp này là đánh giá các đặc điểm liên quan đến hiệu suất học tập của người học.Hầu hết các nghiên cứu trước sử dụng hai bài kiểm tra để thực hiện thí nghiệm: tiền kiểmtra (pre-test) và hậu kiểm tra (post-test) lần lượt được thực hiện trước và sau khi sử dụng
hệ thống [23] Hai bài kiểm tra này được sử dụng để đánh giá độ tăng hiệu suất của ngườihọc qua quá trình sử dụng hệ thống gợi ý
Hiệu quả học tập là một mục tiêu khác nhằm xác định hiệu suất học tập Hiệu quả họctập có thể được đo lường thông qua số lần truy cập, học tập hoặc hoàn thành một bài tậptrong quá trình học tập [33] Nhìn chung, hiệu quả học tập thể hiện sự tương tác nhiều củangười học trên hệ thống gợi ý
Trong khuôn khổ luận văn này, phương pháp đánh giá hiệu suất học tập dựa trên sự tươngtác của người học được sử dụng do tính sẵn sàng của dữ liệu sau triển khai hệ thống gợi ý Cácphương pháp đánh giá khác sẽ được khảo sát trong tương lai
Nhìn chung, qua chương này, chúng ta có được một cái nhìn tổng quan về các phương phápgợi ý đang được áp dụng trong lĩnh vực giáo dục Đồng thời, lợi ích khi áp dụng hệ thống gợi ýcũng được trình bày là cung cấp các tài liệu học tập có độ khó phù hợp với năng lực người họctại các thời điểm khác nhau Phần cuối cùng trong chương này trình bày các phương pháp đánhgiá cho hệ thống gợi ý Từ đó, chương này đã cung cấp các kiến thức nền tảng phục vụ cho các
đề xuất giải pháp gợi ý và phương pháp đánh giá phù hợp cho các chương sau
Trang 29Chương 3
Hệ thống gợi ý hỗ trợ thực hành lập trình
Chương này dựa vào các hệ thống gợi ý trước đó và đưa ra một số phân tích về ưu điểm vàhạn chế của các hệ thống Qua đó, chương này đề xuất một kiến trúc hệ thống gợi ý chung chothực hành lập trình Sau đó, quá trình gợi ý được khảo sát tập trung vào gợi ý testcases cho Bàitập lớn Các cách thức triển khai BTL trước đây được phân tích và giải pháp gợi ý testcases phùhợp sẽ được đề xuất
Hình 3.1 mô tả về kiến trúc hệ thống đề xuất cho học tập thích ứng trong thực hành lập trình,
trong đó có hai loại người dùng tham gia vào hệ thống là người dạy và người học Người dạy có thể quản lý các khóa học và bài tập bằng mô-đun Quản lý nội dung học tập Mô-đun này có một
ngân hàng câu hỏi lưu trữ các câu hỏi từ các khóa học khác nhau để tái sử dụng, tức là một câuhỏi có thể được sử dụng trong các bài thực hành hoặc khóa học phân biệt Một bài thực hànhtrong hệ thống đề xuất được hiểu giống như một nơi gồm nhiều câu hỏi thuộc cùng một chủ
đề (Mảng, Cấu trúc Lặp ) Người dạy có thể thêm các câu hỏi đã chuẩn bị vào 2 kiểu bài thực
hành là Bài thực hành bắt buộc và Bài thực hành luyện tập.
Một Bài thực hành bắt buộc sẽ giới hạn số lần gửi tối đa và thời gian làm bài Người dạy phải thiết lập các ràng buộc này cho từng câu hỏi trong một bài thực hành Mặt khác, một Bài
những câu hỏi phù hợp với đặc điểm người học Người dạy cần cấu hình một số thông số điều
kiệnđể thể hiện kỳ vọng của mình đối với từng mức độ của người học Người học trong hệ thống
sẽ được coi là có 3 mức độ: dễ, trung bình, khó Ở mỗi mức độ, người học sẽ được hệ thống gợi
ý cho câu hỏi ở mức độ đó Các câu hỏi khó hơn sẽ được cung cấp khi người học đủ điều kiện
cho các thông số điều kiện từ người dạy Hơn nữa, Bộ phân loại câu hỏi trong Module học tập
thích ứngsẽ phân loại độ khó câu hỏi dựa trên kết quả của người học và đưa phân loại này chongười dạy xem xét Quá trình này sẽ giúp người dạy thấy được sự khác biệt về độ khó theo kết
Trang 30Hình 3.1: Kiến trúc hệ thống thực hành lập trình thích ứng được đề xuất
quả của người học và theo ước lượng của người dạy Sau đó, người dạy có thể điều chỉnh độ khócủa câu hỏi dựa trên kỳ vọng của họ
Trong Bài thực hành bắt buộc, người học có các ràng buộc về thời gian và số lần nộp bài.
Người học cần phải nỗ lực và làm bài nghiêm túc để đạt được số điểm tốt Do đó, dữ liệu làm
bài thực hành bắt buộc là dữ liệu làm bài tin cậy; Bộ phân loại câu hỏi sẽ sử dụng nguồn dữ liệu này cho quá trình phân loại Về các Bài thực hành luyện tập, mỗi khi người học gửi một câu trả lời, Bộ gợi ý sẽ truy xuất các câu trả lời và kết quả trước đó của người học này, sau đó
trích xuất thông tin quan tâm và so sánh chúng với các thông số điều kiện từ người dạy trong
Bộ điều kiện xác định trình độ, và xác định độ khó thích hợp cho người học Tiếp theo, ở khối
Chọn câu hỏi ở trình độ của người học, hệ thống sẽ chạy thuật toán để lựa chọn các câu hỏiphù hợp với độ khó hiện tại của người học Các nội dung tiếp theo mô tả chi tiết về quá trình