Tổng quan nghiên cứu

Trong bối cảnh nhu cầu nhân lực ngành Công nghệ Thông tin (CNTT) tại Việt Nam tăng trưởng mạnh mẽ, đặc biệt trong giai đoạn 2018-2022, số lượng lập trình viên thiếu hụt khoảng 20.000 người vào năm 2021, trong khi số sinh viên tốt nghiệp ngành phần mềm chỉ đáp ứng được một phần nhỏ nhu cầu thực tế. Việc đào tạo kỹ năng lập trình thực hành trở thành yếu tố then chốt nhằm nâng cao chất lượng nguồn nhân lực CNTT. Tuy nhiên, với số lượng lớn người học và sự đa dạng về năng lực, việc cá nhân hóa quá trình học tập lập trình gặp nhiều thách thức.

Luận văn tập trung nghiên cứu và phát triển hệ thống gợi ý hỗ trợ thực hành lập trình, nhằm đề xuất các bài tập phù hợp với năng lực và tốc độ học tập của từng người học. Phạm vi nghiên cứu tập trung vào môn Kỹ thuật lập trình dành cho sinh viên năm nhất tại Trường Đại học Bách Khoa, Đại học Quốc Gia TP. HCM, trong các học kỳ từ năm 2020 đến 2023. Hệ thống gợi ý được xây dựng trên nền tảng Moodle LMS tích hợp tiện ích CodeRunner, tập trung vào việc gợi ý các bộ testcase trong Bài tập lớn (BTL) – dạng bài tập phức tạp đòi hỏi người học phải giải quyết nhiều vấn đề lập trình khác nhau.

Mục tiêu chính của nghiên cứu là phát triển kiến trúc hệ thống gợi ý testcase dựa trên sự kết hợp giữa mô hình Recommendation System (RS) và lý thuyết Vùng phát triển gần (Zone of Proximal Development - ZPD), nhằm tăng cường sự hứng thú và khả năng tự học của người học thông qua việc cung cấp các bài tập phù hợp với năng lực cá nhân. Kết quả nghiên cứu có ý nghĩa quan trọng trong việc nâng cao hiệu quả đào tạo lập trình tại các trường đại học, đồng thời góp phần giải quyết bài toán thiếu hụt nhân lực CNTT chất lượng cao.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Luận văn dựa trên hai lý thuyết và mô hình nghiên cứu chính:

  1. Hệ thống Gợi ý (Recommendation System - RS): RS là công nghệ phổ biến trong thương mại điện tử, được ứng dụng để đề xuất sản phẩm hoặc thông tin phù hợp dựa trên hành vi và sở thích của người dùng. Các phương pháp RS chính bao gồm:

    • Lọc nội dung (Content-based Filtering - CBF): Gợi ý dựa trên đặc điểm của sản phẩm và hồ sơ người dùng.
    • Lọc cộng tác (Collaborative Filtering - CF): Gợi ý dựa trên hành vi và đánh giá của nhóm người dùng tương tự.
    • Phân rã ma trận (Matrix Factorization - MF), đặc biệt là Singular Value Decomposition (SVD): Giúp giảm chiều dữ liệu và phát hiện các đặc điểm tiềm ẩn trong ma trận người dùng-sản phẩm.
  2. Phương pháp Vùng phát triển gần (Zone of Proximal Development - ZPD): Lý thuyết giáo dục của Vygotsky, nhấn mạnh việc cung cấp tài liệu học tập phù hợp với năng lực hiện tại của người học, tránh gây nhàm chán hoặc quá khó khăn. ZPD được định nghĩa thông qua các tiêu chí như số lượng gợi ý cần thiết để người học vượt qua bài tập, giúp điều chỉnh độ khó phù hợp.

Các khái niệm chuyên ngành quan trọng bao gồm: Hệ thống Quản lý Học tập (LMS), Hệ thống Học tập Thích ứng (Adaptive Learning System - ALS), Hệ thống Gợi ý Testcases (Testcases Recommendation System - TRS), Phân tích tường minh và ngầm định trong phân tích hồ sơ người học.

Phương pháp nghiên cứu

  • Nguồn dữ liệu: Dữ liệu thu thập từ hệ thống Moodle LMS tích hợp CodeRunner tại Trường Đại học Bách Khoa, bao gồm các bài tập lớn, kết quả nộp bài, điểm số, và tương tác của người học trong các học kỳ 2020-2023. Tổng số testcase gợi ý là 124, mỗi lần gợi ý 5 testcase.

  • Phương pháp phân tích:

    • Phân tích định tính và định lượng dựa trên dữ liệu tương tác người học.
    • Áp dụng mô hình SVD để dự đoán điểm người học cho từng testcase, kết hợp với lý thuyết ZPD để điều chỉnh độ khó testcase phù hợp.
    • Phân loại độ khó câu hỏi dựa trên các đặc trưng như điểm trung bình, số người làm bài đạt, số lần nộp bài.
    • So sánh hiệu quả tương tác và kết quả học tập qua các học kỳ với các phương pháp triển khai BTL khác nhau.
  • Timeline nghiên cứu: Nghiên cứu được thực hiện từ tháng 2 đến tháng 7 năm 2023, bao gồm giai đoạn thu thập dữ liệu, xây dựng hệ thống, triển khai thử nghiệm và đánh giá kết quả.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

  1. Hiệu quả của hệ thống học tập thích ứng (ALS): Qua khảo sát 40 người học trong học kỳ 2 năm học 2020-2021, hệ thống ALS với chức năng phân loại độ khó câu hỏi và gợi ý bài tập luyện tập đã nhận được điểm trung bình 4.2/5 về việc độ khó câu hỏi tăng dần phù hợp với năng lực người học. Tuy nhiên, mức độ phù hợp của độ khó câu hỏi gợi ý còn hạn chế do số lượng câu hỏi chưa đa dạng.

  2. Tăng cường tương tác người học qua hệ thống gợi ý testcase (TRS): So sánh ba học kỳ SEM-202, SEM-212 và SEM-222 cho thấy:

    • Số lượng người học tham gia nộp bài tăng từ 852 (SEM-202) lên 1332 (SEM-222).
    • Trung bình số bài nộp trên người học tăng từ 1 (SEM-202) lên 18.5 (SEM-222).
    • Chỉ số tương tác trung bình (số bài nộp trên người học trên số ngày) tăng từ 0.5 (SEM-212) lên 0.7 (SEM-222).
    • Nhóm người học sử dụng TRS có chỉ số tương tác trung bình trên testcase mẫu là 0.76, cao hơn nhóm không sử dụng TRS (0.43) và học kỳ SEM-212 (0.5).
  3. Phân tích sự phù hợp của các thông số hệ thống:

    • Thời gian làm bài phù hợp nhất là khoảng 7-10 ngày, dựa trên phân bố số ngày người học nộp bài trên hệ thống.
    • Số lần yêu cầu testcase mới tối đa trong một ngày được thiết lập là 5 lần, phù hợp với hành vi tương tác của người học.
  4. Phương pháp gợi ý testcase SVD-ZPD: Kết hợp mô hình SVD dự đoán điểm người học với lý thuyết ZPD để điều chỉnh độ khó testcase, giúp người học luôn được thử thách ở mức độ phù hợp, tránh nhàm chán hoặc quá khó khăn.

Thảo luận kết quả

Kết quả cho thấy việc áp dụng hệ thống gợi ý testcase dựa trên mô hình RS và lý thuyết ZPD đã nâng cao đáng kể mức độ tương tác và khả năng tự học của người học lập trình. So với các phương pháp truyền thống chỉ cung cấp testcase mẫu cố định, hệ thống TRS giúp cá nhân hóa quá trình học tập, phù hợp với năng lực và tiến độ của từng người học.

Việc phân loại độ khó câu hỏi dựa trên dữ liệu thực tế từ các lần nộp bài giúp người dạy có cơ sở điều chỉnh nội dung phù hợp hơn với kỳ vọng đào tạo. Đồng thời, việc giới hạn số lần yêu cầu testcase mới và yêu cầu người học phải hoàn thành bộ testcase hiện tại trước khi nhận bộ mới giúp duy trì sự tập trung và hiệu quả học tập.

So sánh với các nghiên cứu trước đây về hệ thống học tập thích ứng và gợi ý trong giáo dục, nghiên cứu này đã mở rộng ứng dụng RS vào lĩnh vực thực hành lập trình, đồng thời kết hợp lý thuyết ZPD để tăng tính thích ứng và cá nhân hóa. Dữ liệu thực nghiệm thu thập từ Moodle LMS và CodeRunner cung cấp bằng chứng thực tiễn cho hiệu quả của giải pháp.

Các biểu đồ phân bố số ngày nộp bài và số lượng yêu cầu testcase mới minh họa rõ ràng sự phù hợp của các tham số hệ thống với hành vi người học, góp phần vào việc tối ưu hóa trải nghiệm học tập.

Đề xuất và khuyến nghị

  1. Mở rộng ngân hàng câu hỏi và testcase: Tăng số lượng và đa dạng các câu hỏi, testcase để cải thiện độ chính xác trong phân loại độ khó và nâng cao hiệu quả gợi ý, giúp người học có nhiều lựa chọn phù hợp hơn.

  2. Tối ưu hóa tham số gợi ý: Điều chỉnh linh hoạt các tham số như số lần yêu cầu testcase mới, thời gian làm bài dựa trên phân tích dữ liệu tương tác thực tế để phù hợp với từng nhóm người học và từng khóa học.

  3. Phát triển giao diện người dùng thân thiện: Cải tiến giao diện gợi ý testcase trên Moodle LMS để người học dễ dàng theo dõi độ khó, tiến độ và nhận phản hồi tức thời, từ đó tăng động lực học tập.

  4. Tích hợp phân tích dữ liệu nâng cao: Áp dụng các kỹ thuật khai thác dữ liệu và học máy để phân tích sâu hơn hành vi người học, từ đó cá nhân hóa gợi ý chính xác hơn và hỗ trợ người dạy trong việc điều chỉnh nội dung giảng dạy.

  5. Triển khai thử nghiệm mở rộng: Mở rộng áp dụng hệ thống gợi ý testcase cho các môn học lập trình khác và các trường đại học khác nhằm đánh giá tính khả thi và hiệu quả trên quy mô lớn hơn.

Đối tượng nên tham khảo luận văn

  1. Giảng viên và nhà quản lý giáo dục CNTT: Có thể áp dụng hệ thống gợi ý testcase để nâng cao hiệu quả giảng dạy, cá nhân hóa quá trình học tập và quản lý chất lượng đào tạo lập trình.

  2. Nhà phát triển phần mềm giáo dục: Tham khảo kiến trúc và phương pháp triển khai hệ thống gợi ý testcase tích hợp trên nền tảng Moodle LMS, từ đó phát triển các giải pháp tương tự hoặc cải tiến.

  3. Sinh viên và người học lập trình: Hiểu rõ về cách hệ thống gợi ý hỗ trợ quá trình học tập, từ đó tận dụng tối đa các công cụ để nâng cao kỹ năng lập trình và tự học hiệu quả.

  4. Nhà nghiên cứu trong lĩnh vực giáo dục và công nghệ học tập: Nghiên cứu mô hình kết hợp RS và ZPD trong giáo dục, mở rộng ứng dụng và phát triển các phương pháp học tập thích ứng dựa trên dữ liệu thực tế.

Câu hỏi thường gặp

  1. Hệ thống gợi ý testcase hoạt động như thế nào?
    Hệ thống sử dụng mô hình SVD để dự đoán điểm người học cho từng testcase dựa trên dữ liệu tương tác trước đó, kết hợp với lý thuyết ZPD để điều chỉnh độ khó testcase phù hợp với năng lực hiện tại của người học, từ đó gợi ý các testcase mà người học cần luyện tập.

  2. Làm thế nào để hệ thống đảm bảo testcase gợi ý phù hợp với từng người học?
    Hệ thống phân loại độ khó testcase dựa trên kết quả làm bài của người học và sử dụng số lần yêu cầu testcase mới làm chỉ số đánh giá trạng thái năng lực (ZPD). Nếu người học gặp khó khăn, hệ thống sẽ giảm độ khó; nếu người học làm nhanh, hệ thống sẽ tăng độ khó.

  3. Hệ thống có thể áp dụng cho các môn học khác ngoài lập trình không?
    Mô hình và kiến trúc hệ thống có thể được điều chỉnh và áp dụng cho các môn học khác có tính chất thực hành và đánh giá qua bài tập, đặc biệt là các môn đòi hỏi kỹ năng giải quyết vấn đề và luyện tập liên tục.

  4. Người học có thể yêu cầu bao nhiêu bộ testcase mới trong một ngày?
    Hiện tại, hệ thống giới hạn tối đa 5 lần yêu cầu testcase mới mỗi ngày để đảm bảo người học tập trung hoàn thành bộ testcase hiện tại trước khi nhận bộ mới, giúp duy trì hiệu quả học tập.

  5. Hệ thống có hỗ trợ người dạy trong việc điều chỉnh nội dung không?
    Có, hệ thống cung cấp chức năng phân loại độ khó câu hỏi dựa trên dữ liệu thực tế và cho phép người dạy chỉnh sửa độ khó theo kỳ vọng, từ đó điều chỉnh nội dung bài tập phù hợp với năng lực chung của người học.

Kết luận

  • Đã xây dựng và triển khai thành công hệ thống gợi ý testcase hỗ trợ thực hành lập trình trên nền tảng Moodle LMS tích hợp CodeRunner, áp dụng mô hình SVD kết hợp lý thuyết ZPD.
  • Hệ thống giúp cá nhân hóa quá trình học tập, tăng cường sự tương tác và khả năng tự học của người học lập trình.
  • Kết quả thực nghiệm qua ba học kỳ cho thấy sự gia tăng đáng kể về số lượng bài nộp và mức độ tương tác của người học khi sử dụng hệ thống gợi ý testcase.
  • Phân tích dữ liệu tương tác giúp xác định các tham số hệ thống phù hợp, góp phần nâng cao hiệu quả đào tạo lập trình tại các trường đại học.
  • Đề xuất mở rộng nghiên cứu và ứng dụng hệ thống cho các môn học và môi trường đào tạo khác, đồng thời phát triển các kỹ thuật phân tích dữ liệu nâng cao để tối ưu hóa gợi ý.

Hành động tiếp theo: Các nhà quản lý giáo dục và phát triển phần mềm giáo dục nên xem xét tích hợp hệ thống gợi ý testcase vào quy trình đào tạo lập trình, đồng thời tiếp tục thu thập và phân tích dữ liệu để cải tiến hệ thống. Người học được khuyến khích tận dụng các công cụ gợi ý để nâng cao kỹ năng lập trình và phát triển khả năng tự học hiệu quả.