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ân tí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ương phá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ực hà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ành nhiệ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ực nghiệ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ăn trong 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ướng phát triển tiếp theo.
LUẬN VĂN TỐT NGHIỆP Trang 5/49 Đại học Quốc gia TP.HCM - Trường Đại Học Bách Khoa Khoa Khoa học và Kỹ thuật Máy tính Chươ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ật phâ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 đánh giá cho Hệ thống Gợi ý trong lĩnh vực giáo dục.1 Phân tích hồ sơ người học trong Hệ thống Quản lý Học tập (LMS) 2.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ụng trong 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ợ cho việ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ọc tậ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ên nă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ên cứu [5] được thực hiện ở năm 2020, Moodle có gần 100.000 trang web đã đăng ký ở 229 quốc gia. 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ắc nghiệm, trả lời ngắn, câu hỏi ghép cặp, 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ập trì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ên mộ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ương trì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 qua tiện ích CodeRunner [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 LUẬN VĂN TỐT NGHIỆP Trang 6/49 Đại học Quốc gia TP.HCM - Trường Đại Học Bách Khoa Khoa Khoa học và Kỹ thuật Máy tính (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++.1a minh họa mô tả đề của một câu hỏ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.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 trong mộ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.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ên mộ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ồn củ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ên testcases đó. Đ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ạy cả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ộp củ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ủa ngườ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ọc cũ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ấm bài, tìm lỗi và sửa lỗi ngay lập tức sau khi nộp bài.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óa trong 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 LUẬN VĂN TỐT NGHIỆP Trang 7/49 Đại học Quốc gia TP.HCM - Trường Đại Học Bách Khoa Khoa Khoa học và Kỹ thuật Máy tính về đặ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ân hó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ích củ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ứu trướ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ục tiê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ủa phươ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ấp cho 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 cho phươ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ương tá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ệu nhá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ời gian 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ả trong cá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ủa ngườ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ọc cả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ường minh 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].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ấp mộ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 độ, phong cá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ười họ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ách thứ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.1 ghi 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ười họ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, LUẬN VĂN TỐT NGHIỆP Trang 8/49 Đại học Quốc gia TP.HCM - Trường Đại Học Bách Khoa Khoa Khoa học và Kỹ thuật Máy tính Bả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 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 Người học cần làm một bài kiểm ở cuối mỗi dùng mục tiêu. Sau đó, hệ thống xem xét tất cả tài chương của môn học. Nếu người học vượt qua bài [15] liệu học tập mà k người học này sử dụng.
Những tài kiểm tra này thì người học sẽ được học chương tiếp liệu học tập được có thời gian sử dụng nhiều hơn theo. 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.