Tổng quan nghiên cứu
Thị trường công nghệ thông tin tại Việt Nam đang đối mặt với sự mất cân đối nghiêm trọng giữa cung và cầu lao động kỹ thuật cao. Theo báo cáo chuyên ngành năm 2021 của TopDev, toàn ngành cần khoảng 450.000 nhân sự trong khi nguồn cung thực tế chỉ đạt 430.000 lập trình viên, dẫn đến mức thiếu hụt khoảng 20.000 vị trí việc làm. Bên cạnh đó, số liệu từ Bộ Giáo dục và Đào tạo ghi nhận hàng năm có khoảng 55.000 sinh viên tốt nghiệp chuyên ngành phần mềm, nhưng chỉ có khoảng 16.500 người (tương đương 30%) đáp ứng trực tiếp được các tiêu chuẩn tuyển dụng khắt khe từ doanh nghiệp. Thực trạng này đặt ra yêu cầu cấp thiết về việc đổi mới phương pháp giảng dạy thực hành lập trình tại các trường đại học quy mô lớn.
Thách thức cốt lõi nảy sinh trong các học phần lập trình cơ sở, điển hình như môn Kỹ thuật lập trình tại Trường Đại học Bách Khoa thuộc Đại học Quốc gia Thành phố Hồ Chí Minh với quy mô từ 864 đến 1.484 sinh viên mỗi học kỳ. Việc quản lý và hướng dẫn sinh viên hoàn thành các bài tập lớn phức tạp gặp nhiều rào cản do sự phân hóa về trình độ, tốc độ tiếp thu và kỹ năng gỡ lỗi của từng cá nhân.
Nghiên cứu của tác giả Vũ Văn Tiến, thuộc chuyên ngành Khoa học Máy tính (mã số 8480101), thực hiện dưới sự hướng dẫn của Tiến sĩ Phạm Hoàng Anh và Phó Giáo sư Tiến sĩ Huỳnh Tường Nguyên, tập trung giải quyết bài toán trên. Mục tiêu của luận văn là thiết kế và hiện thực hóa kiến trúc Hệ thống Học tập Thích ứng (ALS) tích hợp Hệ thống Gợi ý Testcase (TRS). Phạm vi triển khai bao trùm các khóa học Kỹ thuật lập trình trong giai đoạn từ học kỳ 2 năm học 2020-2021 đến học kỳ 2 năm học 2022-2023. Giải pháp giúp nâng cao chỉ số tương tác bài nộp trung bình từ 0.50 lên 0.76 và thu hút 72.91% sinh viên chủ động tham gia luyện tập kiểm thử cá nhân hóa.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khung lý thuyết áp dụng
Nghiên cứu kết hợp liên ngành giữa mô hình Hệ thống Học tập Thích ứng (Adaptive Learning System - ALS), lý thuyết giáo dục học và kỹ thuật Học máy trong Hệ thống Gợi ý (Recommendation System - RS). Nền tảng cốt lõi bao gồm các thành tố lý thuyết sau:
- Lý thuyết Vùng phát triển gần (Zone of Proximal Development - ZPD): Khởi xướng bởi nhà tâm lý học Lev Vygotsky và được vận hành hóa thành mô hình thuật toán SZPD bởi Tom Murray và Ivon Arroyo. ZPD xác định khoảng cách giữa năng lực giải quyết vấn đề độc lập của người học và tiềm năng đạt được dưới sự định hướng phù hợp. Hệ thống ứng dụng hai tiêu chí: Tiêu chí thành thạo (Mastery criterion - yêu cầu làm đúng M trong số N câu hỏi gần nhất) và Tiêu chí ZPD (theo dõi sai lệch số lượng gợi ý cần thiết thông qua công thức $Z = H^* - H$ để nhận diện vùng nhàm chán khi $Z < -DH$ hoặc vùng mơ hồ khi $Z > DH$).
- Kỹ thuật Phân rã Ma trận (Matrix Factorization - MF) qua Mô hình SVD: Ứng dụng phương pháp Phân tích Suy biến (Singular Value Decomposition - SVD) để phân tích ma trận tương tác Người dùng - Testcase có độ thưa cao thành ba ma trận thành phần $U$, $\Sigma$ và $V^T$. Mô hình giúp trích xuất các đặc trưng tiềm ẩn, từ đó dự đoán chính xác xác suất làm sai của từng sinh viên trên từng ca kiểm thử cụ thể.
- Các khái niệm bổ trợ: Phân tích hồ sơ người học ngầm định (implicit profiling) dựa trên nhật ký tương tác nhấp chuột và lịch sử nộp bài; Bộ phân loại độ khó câu hỏi tự động dựa trên 5 đặc trưng thống kê; Hệ thống chấm điểm tự động (Automatic Grading System - AGS) tích hợp trên Moodle qua tiện ích CodeRunner.
Phương pháp nghiên cứu
Nghiên cứu sử dụng phương pháp mô hình hóa toán học kết hợp phân tích thực nghiệm so sánh định lượng trên dữ liệu thực tế:
- Quy mô và phương pháp chọn mẫu: Nghiên cứu áp dụng phương pháp chọn mẫu thuận tiện toàn diện trên toàn bộ sinh viên năm thứ nhất thuộc Khoa Khoa học và Kỹ thuật Máy tính tham gia môn học. Dữ liệu thử nghiệm sơ bộ gồm 40 sinh viên làm bài kiểm tra mảng gồm 15 câu hỏi (5 Dễ, 5 Trung bình, 5 Khó). Bộ dữ liệu thực nghiệm quy mô lớn thu thập từ 1.484 sinh viên đăng ký môn học ở học kỳ 2 năm học 2022-2023 và đối sánh với 864 sinh viên của học kỳ trước đó.
- Nguồn dữ liệu và phân tích: Dữ liệu được trích xuất tự động từ nhật ký hệ thống Moodle LMS và máy chủ CodeRunner, bao gồm 36.436 bản ghi nộp mã nguồn C++, thời gian nộp bài, điểm số trung gian và lịch sử phản hồi lỗi testcase.
- Lý do lựa chọn phương pháp: Mô hình SVD được lựa chọn nhờ khả năng xử lý xuất sắc các tập dữ liệu thưa thớt mà không cần gán nhãn thủ công tốn kém, trong khi lý thuyết ZPD cung cấp cơ chế điều chỉnh sư phạm động, ngăn ngừa hiện tượng quá tải hoặc chán nản ở người học. Timeline nghiên cứu được thực hiện đồng bộ từ tháng 02/2023 đến tháng 06/2023.
Kết quả nghiên cứu và thảo luận
Những phát hiện chính
Phân tích dữ liệu thực nghiệm qua ba học kỳ liên tiếp (học kỳ 2 năm học 2020-2021, học kỳ 2 năm học 2021-2022 và học kỳ 2 năm học 2022-2023) đã chỉ ra các phát hiện nổi bật:
- Bùng nổ quy mô và tần suất tương tác của người học: Ở học kỳ có sự tham gia của TRS, hệ thống ghi nhận 1.332 sinh viên nộp tổng cộng 25.009 lượt bài trên hệ thống testcase mẫu (tăng gấp 4.58 lần so với 5.463 lượt của học kỳ trước). Cộng thêm 11.427 lượt nộp trên hệ thống gợi ý TRS, tổng số lượt nộp đạt 36.436 lượt, cao gấp 42.8 lần so với phương pháp nộp bài truyền thống chỉ có 852 lượt nộp.
- Tỷ lệ chấp nhận và hành vi phân nhóm sinh viên: Có 1.082 sinh viên (chiếm 72.91% tổng sĩ số và 81.23% số người có nộp bài) chủ động sử dụng hệ thống gợi ý TRS. Nhóm sử dụng TRS đạt trung bình 20.41 lượt nộp bài/người trên hệ thống mẫu, cao gần gấp đôi mức 11.71 lượt nộp bài/người của nhóm 250 sinh viên không sử dụng TRS.
- Gia tăng vượt trội chỉ số tương tác trung bình: Chỉ số tương tác (tính bằng số bài nộp chia cho tích số người và số ngày làm bài) của nhóm sử dụng TRS đạt 0.76 trên hệ thống mẫu và 0.75 trên hệ thống TRS. Con số này vượt trội hoàn toàn so với mức 0.50 của học kỳ trước và mức 0.43 của nhóm không sử dụng trong cùng học kỳ.
- Phân bố thời gian hoàn thành tối ưu: Phân tích tần suất cho thấy 94% sinh viên (1.252 người) hoàn tất bài tập trên hệ thống mẫu trong vòng 10 ngày, trong khi 96.5% sinh viên sử dụng TRS hoàn thành chu trình luyện tập trong khung thời gian 7 ngày.
Thảo luận kết quả
Sự cải thiện vượt bậc trong các chỉ số học tập bắt nguồn từ sự kết hợp giữa cơ chế chấm điểm tự động tức thời và chiến lược gợi ý có định hướng. Trước đây, việc chỉ cung cấp một bộ testcase mẫu cố định khiến sinh viên mới học dễ bế tắc khi gặp lỗi phức tạp. Hệ thống TRS đã chia nhỏ ngân hàng gồm 124 testcase thành các gói 5 ca kiểm thử có độ khó tương thích với năng lực tức thời, loại bỏ tâm lý quá tải nhận thức.
Phương thức "học qua hành" (learn-by-doing) được củng cố khi sinh viên nhận phản hồi chi tiết về sai khác đầu ra, thúc đẩy họ liên tục tái cấu trúc mã nguồn. Trong các bảng thống kê và biểu đồ phân tích chuỗi thời gian, dữ liệu nộp bài thể hiện rõ đường cong học tập tích cực: sinh viên nộp bài đều đặn hàng ngày thay vì dồn vào sát thời hạn chót như ở phương pháp truyền thống. Khảo sát trên thang đo Likert 5 điểm cũng ghi nhận mức độ hài lòng cao với điểm trung bình 4.4 cho nhận định độ khó tăng dần hợp lý và 4.1 cho tính phù hợp của bài tập được gợi ý.
Đề xuất và khuyến nghị
Dựa trên các bằng chứng thực nghiệm từ luận văn, bốn giải pháp cụ thể được đề xuất nhằm tối ưu hóa chất lượng đào tạo lập trình:
- Mở rộng và chuẩn hóa ngân hàng ca kiểm thử phân tầng: Tổ bộ môn Lập trình cần mở rộng quy mô từ 124 testcase hiện tại lên tối thiểu 500 testcase đa dạng cho mỗi bài tập lớn, hoàn thành trong quý 4 năm 2023 nhằm gia tăng độ chính xác cho mô hình phân rã ma trận SVD.
- Thiết lập khung thông số sư phạm chuẩn hóa cho bộ điều khiển ZPD: Giảng viên phụ trách môn học cần cấu hình hệ thống với bộ 6 tham số điều kiện tối ưu (số câu tối thiểu $mq=3$, số câu tốt tối thiểu $mgq=3$, ngưỡng điểm đạt $gms=7.5-8.0$, số lần nộp liên tiếp $ns=2$ và tham số ưu tiên câu hỏi mới $k=1.2$) ngay từ đầu học kỳ 1 năm học 2023-2024.
- Tối ưu hóa thời gian mở cổng bài tập lớn: Ban Đào tạo nên rút ngắn thời hạn nộp bài tập lớn thích ứng xuống mức 7 đến 10 ngày thay vì kéo dài 27 ngày như trước đây, nhằm tập trung sự chú ý và nâng cao cường độ tự học của sinh viên lên mức tối đa.
- Đóng gói và chuyển giao module plug-in mã nguồn mở: Đội ngũ kỹ thuật EdTech cần hoàn thiện đóng gói module Code Practice và TRS thành tiện ích mở rộng chuẩn hóa cho hệ sinh thái Moodle LMS trong giai đoạn 2024-2025 để áp dụng cho các cơ sở đào tạo kỹ thuật trên toàn quốc.
Đối tượng nên tham khảo luận văn
Công trình nghiên cứu mang lại giá trị học thuật và thực tiễn cao cho 4 nhóm đối tượng chính:
- Giảng viên giảng dạy lập trình căn bản: Nắm bắt phương pháp tự động hóa phân loại độ khó câu hỏi, theo dõi tiến độ sinh viên theo thời gian thực và xây dựng bài tập lớn theo mô hình thích ứng.
- Kỹ sư phát triển hệ thống EdTech: Khai thác giải thuật kết hợp SVD-ZPD và kiến trúc tích hợp CodeRunner trên Moodle để phát triển các tính năng học tập cá nhân hóa trên nền tảng giáo dục số.
- Cán bộ quản lý đào tạo đại học: Ứng dụng giải pháp nhằm giải quyết bài toán đào tạo đại trà quy mô lớn hàng nghìn sinh viên nhưng vẫn đảm bảo trải nghiệm học tập cá nhân hóa, giảm tải áp lực chấm bài cho trợ giảng.
- Học viên cao học và nghiên cứu sinh ngành Khoa học Máy tính: Tham khảo khung phương pháp luận kết hợp giữa Khai phá dữ liệu giáo dục (Educational Data Mining) và Lý thuyết giáo dục học hiện đại để triển khai các hướng nghiên cứu mở rộng.
Câu hỏi thường gặp
Mô hình SVD đóng vai trò gì trong hệ thống gợi ý testcase?
Mô hình Phân tích Suy biến (SVD) thực hiện phân rã ma trận tương tác giữa sinh viên và các ca kiểm thử nhằm giảm chiều dữ liệu và tìm ra các đặc trưng tiềm ẩn. Qua đó, hệ thống dự đoán chính xác xác suất mà một sinh viên cụ thể sẽ làm sai trên từng testcase chưa từng thực hiện, làm cơ sở lựa chọn ca kiểm thử phù hợp.
Vùng phát triển gần (ZPD) được hệ thống xác định như thế nào?
Hệ thống xác định ZPD thông qua sự sai lệch giữa số gợi ý thực tế sinh viên cần và số gợi ý mục tiêu chuẩn. Khi sinh viên trả lời đúng liên tiếp, hệ thống xác định họ rơi vào vùng nhàm chán và tự động tăng độ khó. Ngược lại, nếu sinh viên mắc lỗi liên tục ở vùng mơ hồ, hệ thống sẽ hạ độ khó xuống mức liền kề.
Tại sao nhóm sinh viên dùng TRS lại có số lượt nộp bài trên hệ thống mẫu cao gấp đôi nhóm không dùng?
Dữ liệu thực nghiệm tại SEM-222 chỉ ra rằng nhóm sử dụng TRS đạt 20.41 lượt nộp/người so với 11.71 lượt/người của nhóm không dùng. Việc nhận được 5 testcase gợi ý trúng lỗi giúp sinh viên hiểu rõ sai sót, từ đó tạo động lực mạnh mẽ để họ liên tục điều chỉnh mã nguồn và nộp lại trên hệ thống mẫu để kiểm chứng.
Quy định giới hạn 5 lần yêu cầu testcase mỗi ngày mang lại lợi ích gì?
Ràng buộc tối đa 5 lần yêu cầu mới mỗi ngày (mỗi lần 5 testcase) ngăn chặn hiện tượng sinh viên thử nghiệm mã nguồn một cách may rủi (brute-force). Quy định này buộc người học phải phân tích kỹ lưỡng thuật toán, đọc kỹ thông báo lỗi và tự tư duy giải thuật trước khi gửi yêu cầu hỗ trợ tiếp theo.
Kiến trúc hệ thống ALS đề xuất có thể mở rộng cho các ngôn ngữ khác không?
Kiến trúc hoàn toàn có thể mở rộng cho các ngôn ngữ như Python, Java hoặc JavaScript. Do hệ thống phân tách độc lập giữa bộ điều khiển gợi ý và môi trường thực thi CodeRunner, người dạy chỉ cần cấu hình trình biên dịch tương ứng trong module Quản lý nội dung học tập mà không cần thay đổi thuật toán cốt lõi.
Kết luận
- Luận văn đã xây dựng thành công kiến trúc Hệ thống Học tập Thích ứng (ALS) kết hợp thuật toán SVD và lý thuyết Vùng phát triển gần (ZPD) để cá nhân hóa việc thực hành lập trình.
- Đã triển khai thực tế Hệ thống Gợi ý Testcase (TRS) trên quy mô 1.484 sinh viên học phần Kỹ thuật lập trình tại Trường Đại học Bách Khoa thuộc Đại học Quốc gia Thành phố Hồ Chí Minh.
- Ghi nhận tỷ lệ tham gia ấn tượng với 72.91% sinh viên sử dụng TRS, tạo ra tổng cộng 36.436 lượt tương tác nộp bài, cao gấp 42.8 lần so với phương thức truyền thống.
- Chỉ số tương tác trung bình của nhóm sử dụng TRS đạt 0.76, chứng minh sự vượt trội về động lực tự học và năng lực gỡ lỗi so với mức 0.43 của nhóm không sử dụng.
- Dữ liệu thực nghiệm xác lập khung thời gian làm bài tối ưu từ 7 đến 10 ngày, mở ra lộ trình nâng cấp hệ thống với ngân hàng 500 testcase phân tầng trong giai đoạn 2023-2025.
Các cơ sở giáo dục đại học và đơn vị phát triển công nghệ đào tạo quan tâm đến việc triển khai mô hình học tập thích ứng có thể liên hệ hợp tác nghiên cứu và chuyển giao công nghệ cùng Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách Khoa - ĐHQG TP.HCM.