Hệ thống tự động chấm bài tập lập trình

5 88 1
Hệ thống tự động chấm bài tập lập trình

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài viết này đề xuất một hệ thống phần mềm có thể chấm bài lập trình của sinh viên một cách tự động. Hệ thống sẽ giúp giảng viên tiết kiệm thời gian và công sức cho việc chấm bài. Hệ thống hoạt động trên nền tảng web nên sinh viên có thể sử dụng hệ thống mọi lúc, mọi nơi.

16 Journal of Transportation Science and Technology, Vol 34, Nov 2019 HỆ THỐNG TỰ ĐỘNG CHẤM BÀI TẬP LẬP TRÌNH AN AUTOMATIC ASSESSMENT SYSTEM FOR PROGRAMMING EXERCISES Trần Thị Mỹ Tiên Trường Đại học Giao thông vận tải Thành phố Hồ Chí Minh Tóm tắt: Ngày nay, tự động hóa xu hướng cơng nghiệp 4.0, khoa Công nghệ thông tin Trường Đại học Giao thơng vận tải Thành phố Hồ Chí Minh, việc chấm lập trình sinh viên thực cách thủ cơng Do giảng viên nhiều thời gian công sức cho việc chấm Ngoài ra, sinh viên phải chờ đợi đến lượt để giảng viên chấm Việc chấm thực lớp với khoảng thời gian giới hạn Bài báo đề xuất hệ thống phần mềm chấm lập trình sinh viên cách tự động Hệ thống giúp giảng viên tiết kiệm thời gian công sức cho việc chấm Hệ thống hoạt động tảng web nên sinh viên sử dụng hệ thống lúc, nơi Qua đó, báo trình bày kết đạt sau thời gian triển khai hệ thống Từ khóa: Hệ thống chấm tự động, tập lập trình, chấm trực tuyến Chỉ số phân loại: 1.4 Abstract: Nowadays, automation is main trend in industry 4.0, at Information Technology faculty, Ho Chi Minh city University of Transport, assessment of programming exercises is being done manually Therefore, it takes a lot of time and efforts for lecturers to assess students’ assignments Besides, students have to wait for their turn to be assessed Assessment is only be handled at classroom with a short time This paper proposes a system that can assess students’ assignments automatically The system will help lecturers save their time and effort The system is a web-based platform, so students can use it anytime, anywhere This paper also presents the results achieved by developing and testing the system Keywords: Automatic assessment system, programming exercises, online assessment Classification number: 1.4 Giới thiệu Hệ thống tự động chấm lập trình sinh viên trường đại học giới thiết kế ứng dụng nhiều năm qua [1] Đặc biệt năm gần đây, hệ thống tự động chấm lập trình phát triển ứng dụng ngày nhiều lĩnh vực giáo dục lĩnh vực khác tuyển dụng, việc làm [2][3] Hiện nay, ACM-ICPC xem kỳ thi lập trình lâu đời danh giá dành cho sinh viên trường đại học cao đẳng toàn cầu Trong năm tổ chức kỳ thi, hệ thống chấm bán tự động ứng dụng để chấm điểm lập trình đội thi Qua thời gian, hệ thống chấm nâng cấp theo hướng tự động hóa ngày cao [5] Ở Việt Nam, kỳ thi Olympic Tin học sinh viên toàn quốc tổ chức đặn hàng năm Kỳ thi tổ chức lần đầu vào năm 1992 Lúc đó, thi lập trình cá nhân chấm hình thức bán tự động Từ năm 2016 đến nay, ban tổ chức triển khai hệ thống chấm lập trình tự động hồn toàn cho khối thi cá nhân Dựa phát triển mạnh mẽ tảng Internet, khóa học lập trình trực tuyến mở ngày nhiều Người học tham gia học thời điểm, nơi phù hợp với điều kiện cá nhân Trong trình học tập trực tuyến, hệ thống chấm tự động sử dụng lẽ tất yếu Ngoài ra, hệ thống đánh giá tự động ứng dụng ngày nhiều vào trình tuyển dụng, đánh giá lập trình viên Với phiên thử nghiệm ban đầu, hệ thống Codility đem lại hiệu cao việc hỗ trợ công ty sàng lọc ứng viên tham gia tuyển dụng vào vị trí lập trình viên Trong vịng sơ loại, cơng ty đưa số TẠP CHÍ KHOA HỌC CƠNG NGHỆ GIAO THƠNG VẬN TẢI, SỐ 34-11/2019 toán yêu cầu tất ứng viên làm qua hệ thống chấm tự động Hơn 90% ứng viên bị loại không làm trọn vẹn tốn dễ số [6] Bài báo đề xuất hệ thống trực tuyến, tự động chấm lập trình sinh viên Qua đó, góp phần tăng hiệu việc dạy học mơn lập trình Hai tác nhân tương tác với hệ thống giảng viên sinh viên Giảng viên tập xem kết làm sinh viên 17 Sinh viên làm trình biên soạn mã nguồn tích hợp hệ thống công cụ biên soạn mã nguồn khác Sau làm xong, sinh viên nộp cho hệ thống Hệ thống tự động chấm cách nhập vào test đối chiếu kết đầu Sau đó, hệ thống hiển thị kết tổng hợp làm Mơ hình tương tác hệ thống minh họa theo hình Internet Internet Giảng viên Hệ thống Sinh viên Hình Mơ hình tương tác hệ thống tự động chấm lập trình Kiến trúc hệ thống Hệ thống gồm ba module minh họa qua hình Hệ thống chấm Module Quản lý tập test Giảng viên 2.2 Module Biên soạn chấm Bao gồm chức cho phép sinh viên trực tiếp biên soạn mã nguồn nhiều ngôn ngữ lập trình khác gồm C/C++, Java, Pascal Chức chấm bắt đầu hệ thống nhận làm sinh viên Quy trình chấm minh họa lưu đồ hình Module Biên soạn chấm Biên dịch Sinh viên Module Quản lý kết làm Thông báo lỗi biên dịch Yes Có lỗi ? No Chấm test Hình Kiến trúc hệ thống 2.1 Module Quản lý tập test Bao gồm chức cho phép giảng viên đưa tập lên hệ thống Bài tập chia thành nhiều chủ đề với nhiều mức độ khác Để đánh giá mức độ tối ưu lập trình, giảng viên quy định thêm thời gian chạy tối đa cho Mỗi tập đưa lên kèm theo nhiều test để đánh giá làm sinh viên Mỗi test bao gồm liệu đầu vào (input) đáp án kết đầu (output) Thông báo kết Hình Lưu đồ quy trình xử lý chấm Đầu tiên, hệ thống tiến hành biên dịch làm Nếu biên dịch có lỗi, hệ thống thông báo chi tiết lỗi để sinh viên biết sửa Lỗi biên dịch thường sai sót tả, cú pháp Nếu biên dịch thành cơng, hệ thống lấy test 18 Journal of Transportation Science and Technology, Vol 34, Nov 2019 tập để chấm Với test, hệ thống chạy chương trình đưa input vào, sau chờ nhận output chương trình Nếu chương trình chạy thời gian tối đa cho phép hệ thống ngắt chương trình xem sinh viên chưa làm test Khi có output từ chương trình, hệ thống so sánh với đáp án để biết kết hay sai Cuối cùng, hệ thống tổng hợp thông báo kết làm cho sinh viên 2.3 Module Quản lý kết làm Bao gồm chức cho phép sinh viên xem lại kết làm Sinh viên mở lại làm, chỉnh sửa nộp để hệ thống chấm lại Giảng viên xem kết làm sinh viên Các vấn đề cần quan tâm thêm Phần đề cập đến số vấn đề xảy thực tế cần quan tâm thêm xây dựng triển khai hệ thống 3.1 Bảo mật Vì làm sinh viên nhập vào hệ thống đoạn mã chương trình nên vấn đề bảo mật cần phải ý đặc biệt Vì thực thi đoạn mã virus đoạn mã độc máy chủ bị nhiễm virus bị chiếm quyền điều khiển Ngoài ra, số lỗi lập trình sinh viên gây ảnh hưởng lớn cho tồn hệ thống Có hai hướng tiếp cận cho vấn đề giải chấp nhận tồn Hướng tiếp cận thứ giải vấn đề Có nhiều phương pháp để giải vấn đề Một phương pháp sử dụng phổ biến dùng chế sandbox Hệ thống Cerioli Cinelli [6] thiết lập môi trường cô lập giới hạn quyền tối thiểu để thực thi đoạn mã giảng viên sinh viên Một phương pháp khác dùng biểu chức quy (Regular Expression) để xây dựng lọc loại bỏ đoạn mã độc [2] Hoặc đơn giản dùng phần mềm diệt virus có để quét tập tin chương trình trước thực thi Hướng tiếp cận thứ hai chấp nhận tồn vấn đề Theo kinh nghiệm Pieterse [4], lỗi có lập trình sinh viên sai sót túy mã độc có chủ ý Theo báo cáo Chen [7], năm hoạt động, hệ thống không nhận đoạn mã độc từ sinh viên gửi lên Có thể sinh viên nghiêm túc đơn giản sinh viên hiểu hậu hành động gửi mã độc lên hệ thống Hệ thống lựa chọn cách tiếp cận thứ để giải vấn đề bảo mật Tác giả thiết lập user máy chủ, user khơng có quyền khác ngồi quyền thực thi làm sinh viên Nếu làm mã độc không can thiệp vào hệ thống 3.2 Đạo văn Khi sử dụng hệ thống tự động để đánh giá kết học tập sinh viên Việc sinh viên đạo văn hay chép sinh viên khác có khuynh hướng tăng cao so với việc chấm thủ công [4] Để hạn chế vấn đề này, giảng viên nên kết hợp việc nhắc nhở sinh viên thái độ tinh thần tự trọng học tập với việc xử lý nghiêm khắc sinh viên vi phạm Hệ thống tích hợp thêm tiện ích nhằm hỗ trợ giảng viên phát đạo văn Ngồi ra, hệ thống kết hợp với số hệ thống phát đạo văn có Khi sinh viên gửi cho hệ thống, hệ thống chuyển làm sinh viên tới hệ thống phát đạo văn, hệ thống đạo văn trả kết phân tích làm tại, tỉ lệ chép (%) vượt ngưỡng cho phép thông báo đến sinh viên cho điểm làm Kết thử nghiệm Dựa vào mơ hình đề xuất, tác giả phát triển hệ thống chấm tự động (http://coding.ut.edu.vn:1010/) Hệ thống triển khai cho lớp học lập trình khoa Cơng nghệ thơng tin, Trường Đại học Giao thơng vận tải Thành phố Hồ Chí Minh sinh viên tham gia ôn luyện Olympic Tin học Trường từ tháng 9/2016 đến tháng 5/2019 Hệ thống xây dựng tảng web, ngôn ngữ PHP hệ quản trị sở liệu MySQL Số tập đưa vào hệ TẠP CHÍ KHOA HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI, SỐ 34-11/2019 thống 81, tổng số test 594, số sinh viên tham gia thử nghiệm 914 Tổng số lần nộp sinh viên 15.734 Đây tổng số nộp không bị lỗi biên dịch Những làm có lỗi biên dịch hệ thống khơng lưu trữ lại mà thông báo lỗi cho sinh viên Thông tin thống kê kết quả chấm thể qua hình Số làm bị điểm chiếm số lượng nhiều Khi rà soát lại làm này, tác giả nhận thấy nguyên nhân lỗi nhập xuất Sinh viên cịn quen với kiểu nhập xuất thủ công nên không làm yêu cầu nhập xuất theo kiểu tự động hệ thống Hình Biểu đồ tổng hợp kết chấm Thông tin thống kê thời điểm sinh viên làm thể qua hình Khoảng 2/3 số lượng nộp vào khung thời gian học tập lớp, tập trung nhiều từ đến 10 sáng từ 13 đến 15 chiều Ngoài thời gian học tập lớp, sinh viên tập trung làm nhiều vào thời điểm từ 21 đến 22 tối Kết thử nghiệm hệ thống cho lớp học lập trình thể rõ tính hiệu hệ thống Giả sử, gồm 10 test, test giảng viên 30 giây để nhập kiểm tra kết thủ công Đối với tập phức tạp cần kiểm tra với liệu lớn, thời gian tăng lên nhiều Trong đó, máy chấm chưa đầy giây cho việc nhập so khớp test Như chấm tự động thời gian chấm giảm 30 lần Ngoài ra, hệ thống hoạt động 24/7, sinh viên nộp lúc nhận kết nhanh chóng tức Ngược lại, với cách chấm thủ công, chấm lớp sinh 19 viên phải chờ tới lượt chờ nhận kết lâu sau giảng viên chấm lên lớp Vậy áp dụng hệ thống cho việc giảng dạy lập trình, giảng viên tiết kiệm nhiều thời gian chấm Đồng thời, hệ thống công cụ hữu hiệu giúp sinh viên tự rèn luyện thêm ngồi lên lớp Hình Biểu đồ thống kê thời điểm làm Một ưu điểm khác hệ thống đánh giá mức độ tối ưu thời gian thực thi lập trình Hệ thống đo thời gian thực thi cho test Vấn đề thường hay bị bỏ qua làm thủ công Bên cạnh đánh giá tính xác kết tiêu chí thời gian thực thi tương đối quan trọng giúp cho sinh viên cải tiến thuật toán làm trở nên tối ưu Đồng thời, dùng cho việc xếp hạng sinh viên thi Như đề cập trên, hệ thống hỗ trợ đa ngôn ngữ, tạo điều kiện cho việc giảng dạy nhiều môn học khác Khi áp dụng vào thực tế cần bổ sung thêm ngôn ngữ lập trình mới, hệ thống cần tích hợp thêm compiler tương ứng với ngơn ngữ Kết luận hướng phát triển Bài báo đề xuất xây dựng hệ thống tự động chấm lập trình sinh viên Qua thời gian triển khai, hệ thống mang lại nhiều kết khả quan Đặc biệt, hệ thống hỗ trợ tốt cho sinh viên 20 Journal of Transportation Science and Technology, Vol 34, Nov 2019 trình học lập trình tham gia ôn luyện Olympic Tin học đạt thành tích cao kỳ thi Olympic Tin học Sinh viên tồn quốc vừa qua Bên cạnh lợi ích đề cập phần đầu, tác giả nhận thấy tinh thần học tập thi đua sinh viên nâng cao rõ rệt Tuy nhiên, để hạn chế số điểm lỗi nhập xuất sinh viên Trong tương lai, tác giả nghiên cứu, bổ sung thêm tính nhắc nhở phát thông báo trước sinh viên nộp bài Tài liệu tham khảo [1] Enstrom, E., Kreitz, G., Niemela, F., Soderman, P., Kann, V.: Five Years with Kattis – Using an Automated Assessment System in Teaching In Proc FIE Conference, IEEE (2011) [2] Ihantola, P., Ahoniemi, T., Karavirta, V., & Seppälä, O (2010, October) Review of recent systems for automatic assessment of programming assignments In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (pp 86-93) ACM [3] Wang, T., Su, X., Ma, P., Wang, Y., & Wang, K (2011) Ability-training-oriented automated assessment in introductory programming course Computers & Education, 56(1), 220-226 [4] Pieterse, V (2013, April) Automated assessment of programming assignments In Proceedings of the 3rd Computer Science Education Research Conference on Computer Science Education Research (pp 45-56) Open Universiteit, Heerlen [5] Polito, G and Temperini, M., 2018 A gamified approach to automated assessment of programming assignments In Challenges and Solutions in Smart Learning (pp 3-12) Springer, Singapore [6] Cerioli, M., & Cinelli, P (2008) GRASP: Grading and Rating ASsistant Professor In Proceedings of the ACM-IFIP IEEIII 2008 Informatics Education Europe III Conference Venice, Italy [7] Xin Chen, Brent Francia, Ming Li, Brian Mckinnon, and Amit Seker (2004) Shared information and program plagiarism detection Information Theory, IEEE Transactions on 50, Ngày nhận bài: 6/9/2019 Ngày chuyển phản biện: 11/9/2019 Ngày hoàn thành sửa bài: 3/10/2019 Ngày chấp nhận đăng: 10/10/2019 ... làm Mơ hình tương tác hệ thống minh họa theo hình Internet Internet Giảng viên Hệ thống Sinh viên Hình Mơ hình tương tác hệ thống tự động chấm lập trình Kiến trúc hệ thống Hệ thống gồm ba module... làm trình biên soạn mã nguồn tích hợp hệ thống công cụ biên soạn mã nguồn khác Sau làm xong, sinh viên nộp cho hệ thống Hệ thống tự động chấm cách nhập vào test đối chiếu kết đầu Sau đó, hệ thống. .. viên phát đạo văn Ngồi ra, hệ thống kết hợp với số hệ thống phát đạo văn có Khi sinh viên gửi cho hệ thống, hệ thống chuyển làm sinh viên tới hệ thống phát đạo văn, hệ thống đạo văn trả kết phân

Ngày đăng: 25/10/2020, 11:59

Hình ảnh liên quan

Hình 2. Kiến trúc hệ thống. - Hệ thống tự động chấm bài tập lập trình

Hình 2..

Kiến trúc hệ thống Xem tại trang 2 của tài liệu.
Hình 1. Mô hình tương tác của hệ thống tự động chấm bài lập trình. - Hệ thống tự động chấm bài tập lập trình

Hình 1..

Mô hình tương tác của hệ thống tự động chấm bài lập trình Xem tại trang 2 của tài liệu.
được thể hiện qua hình 4. Số bài làm bị điểm 0 chi ếm sốlượng nhiều nhất.  Khi  rà soát lại  nh ững bài làm này, tác giả nhận thấ y nguyên  nhân chính là do l ỗi nhập xuất - Hệ thống tự động chấm bài tập lập trình

c.

thể hiện qua hình 4. Số bài làm bị điểm 0 chi ếm sốlượng nhiều nhất. Khi rà soát lại nh ững bài làm này, tác giả nhận thấ y nguyên nhân chính là do l ỗi nhập xuất Xem tại trang 4 của tài liệu.
Hình 4. Biểu đồ tổng hợp kết quả chấm bài. - Hệ thống tự động chấm bài tập lập trình

Hình 4..

Biểu đồ tổng hợp kết quả chấm bài Xem tại trang 4 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan