Xây dựng hệ thống tự động chấm thực hành môn lập trình

3 5 0
Xây dựng hệ thống tự động chấm thực hành môn lập trình

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

Thông tin tài liệu

Bài viết Xây dựng hệ thống tự động chấm thực hành môn lập trình trình bày việc xây dựng hệ thống chấm bài thực hành lập trình được xây dựng cho các môn học lập trình cơ bản ở môi trường đại học, nhằm tự động hóa việc đánh giá kết quả học tập của sinh viên.

Tuyển tập Hội nghị Khoa học thường niên năm 2020 ISBN: 978-604-82-3869-8 XÂY DỰNG HỆ THỐNG TỰ ĐỘNG CHẤM THỰC HÀNH MƠN LẬP TRÌNH Trương Xn Nam1, Nguyễn Thị Phương Dung2 Bộ mơn Tin học - Kỹ thuật Tính tốn, Khoa Công nghệ Thông tin, email: namtx@tlu.edu.vn Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin 1 GIỚI THIỆU CHUNG Các hệ thống tự động kiểm tra phần mềm sử dụng từ lâu ngành kỹ thuật phần mềm với sản phẩm kiểm thử tự động Seledium, TestComplete,… hệ thống đám mây tích hợp trí tuệ nhân tạo cho phép đánh giá vá phần mềm với hàng triệu tình (test case) khác nhau, sử dụng doanh nghiệp phần mềm lớn [1] Về chất, việc chấm tự động thi lập trình sinh viên hoạt động kiểm thử phần mềm, quy mơ nhỏ hướng đến khía cạnh đặc thù giáo dục Báo cáo trình bày việc xây dựng hệ thống chấm thực hành lập trình xây dựng cho mơn học lập trình mơi trường đại học, nhằm tự động hóa việc đánh giá kết học tập sinh viên PHƯƠNG PHÁP NGHIÊN CỨU Khoảng 10 năm trở lại đây, với phát triển mạng internet, dịch vụ tính tốn từ xa kiến trúc tính tốn mới; hệ thống chấm tự động dần sử dụng phổ biến khóa lập trình Nổi bật hệ thống CMS, Codeforces, HackerRank, CodeWars,… Các hệ thống đơn giản hóa thêm khâu đề, phát đề, nộp công bố kết quả; nhiên chưa đảm bảo yếu tố chống gian lận thi cử Các hệ thống chấm thi tự động áp dụng đào tạo Việt Nam từ năm 2000 đến nay, không phổ biến; chủ yếu dùng kì thi học sinh giỏi khóa học đào tạo chun mơn Ví dụ khóa học Thuật toán Ứng dụng Samsung sử dụng SPOJ, hệ thống đào tạo nội FPT sử dụng CodeLearn Ở khối chuyện tin cấp ba, phần mềm Themis sử dụng tương đối rộng rãi 2.2 Phương pháp đánh giá thi 2.1 Hiện trạng Các hệ thống chấm thi tự động có lịch sử phát triển giới nhiều năm Từ năm 1990 có hệ thống áp dụng vào kỳ thi học sinh giỏi lập trình, kỳ thi đòi hỏi nghiêm ngặt chất lượng làm cơng đánh giá kết quả; việc chấm máy giải vấn đề kèm theo tốc độ chấm máy nhanh tương đối so với chấm người Tuy nhiên việc tự động hóa dừng mức chấm làm, việc phát đề bài, nộp bài, công bố kết phải thực thủ công Khi mã nguồn dịch chạy được, có nhiều phương pháp đánh giá thi, Bernard [2] đưa kiểu phân loại sau: Batch: hệ thống so sánh đầu chương trình với đầu theo yêu cầu người làm đề Communication: hệ thống làm cầu nối chương trình vào module chấm thi (do người làm đề cung cấp) TwoStep: hệ thống sinh tự động test (theo khn mẫu) sau đối sánh kết chương trình thí sinh nộp kết chương trình mẫu (do người làm đề cung cấp) 69 Tuyển tập Hội nghị Khoa học thường niên năm 2020 ISBN: 978-604-82-3869-8 ZeroSum: hệ thống làm trọng tài chương trình thí sinh nộp chương trình đối nghịch người làm đề cung cấp, chủ yếu dùng tốn thuộc lý thuyết trị chơi Rank: hệ thống đánh giá xếp hạng lúc nhiều chương trình thí sinh nộp dựa phép đo chuẩn, sử dụng rộng rãi hệ thống học máy 2.3 Tự động sinh trộn đề thi Chúng tơi xây dựng thuật tốn (hình dưới) cải biên từ thuật toán sinh hoán vị ngẫu nhiên [3] để giải vấn đề xây dựng chế đồng thi máy tính thí sinh máy chủ 2.5 Ngăn chặn sai hỏng hệ thống Có bốn phương pháp thơng dụng để giảm thiểu rủi ro nêu trên: Sandbox: tạo mơi trường riêng biệt để thực thi chương trình Đây phương pháp an tồn nhất, chi phí phần cứng cao Guest: thực thi chương trình với hạn chế quyền tài nguyên Monitor: vừa thực thi chương trình vừa theo dõi hoạt động xem có bất thường hay khơng Checker: duyệt đoạn mã chương trình ngăn chặn đoạn mã phá hoại 2.6 Ngăn chặn gian lận làm thi Hình Thuật tốn chọn ngẫu nhiên đề thi Thuật toán đảm bảo việc lựa chọn m câu hỏi quỹ n câu theo phân bổ xác suất tổ hợp Việc khởi tạo nhân (seed) thuật toán ngẫu nhiên phân bổ đảm bảo kết trả hàm quán với key xác định Vì người dùng cần key (chính mã đề thi) 2.4 Xử lý lỗi thi Trong trình thực làm, thí sinh gặp lỗi, máy tính bị treo, thi; cách xử lý hiệu tình Các hệ thống chấm thi tự động thường có hai dạng triển khai: Dạng trưc tuyến, chủ yếu sử dụng luyện tập Dạng nội bộ, nửa trực tuyến, thi phòng thi có giám thị Hệ thống trực tuyến sử dụng với mục đích luyện tập, nên khơng đặt vấn đề xử lý gian lận (vẫn có hạn chế) Với hệ thống nội bộ, thực vài phương pháp hỗ trợ giám thị phát gian lận mức cảnh báo Cụ thể sau: - Phát nguồn gốc bất thường tập tin mã nguồn (thực phía client) - Phát bất thường trình làm thí sinh (thực phía client) - Phát việc trao đổi thơng tin qua mạng thí sinh (thực phía client) - Phát làm có tương đồng cao thí sinh (thực phía server) KẾT QUẢ NGHIÊN CỨU 3.1 Kiến trúc hệ thống Hệ thống phân tách thành ba khối độc lập, giao tiếp với truy vấn RESTful/API https Khối “Judgement Server”: đóng vai trị server thực việc chấm thi Xây dựng MONO.NET Core mở rộng mềm dẻo (scalability) tùy thuộc vào nhu cầu chấm 70 Tuyển tập Hội nghị Khoa học thường niên năm 2020 ISBN: 978-604-82-3869-8 thi, số lượng server tăng lên kì thi đơng thí sinh giảm xuống thí sinh Khối “Front-end Server”: đóng vai trị giao diện quản lý thơng tin đến người sử dụng Được viết PHP/MySQL Laravel, cho phép người dùng xem kết thi, giáo viên gửi câu hỏi, đáp án, đề thi thực cơng việc khác quy trình thi chấm phúc tra Kết thử nghiệm cho thấy phương pháp sandbox có hiệu suất thấp, phương pháp monitor có hiệu suất gần tương đương với guest thử nghiệm ngoại trừ loại chương trình địi hỏi ghi liệu nhiều Vì vậy, với hệ thống tại, kết hợp phương pháp Guest kĩ thuật an toàn khác “full side verification” bao gồm hai bước: Thử thực chương trình thí sinh client khơng có biện pháp ngăn chặn sai hỏng Đưa làm lên server chấm thi thực chế độ Guest 3.3 Triển khai thực tế Hệ thống triển khai thử nghiệm cho hai môn học, 22 lớp, 214 kỳ thi, 6000 lượt thi gần 50000 thi nộp (một nộp nhiều lần thí sinh chưa hài lịng với kết quả) Hình Kiến trúc hệ thống Khối “Client”: ứng dụng đầu cuối làm nhiệm vụ giao tiếp với thí sinh Được xây dựng C#.NET, ứng dụng thực việc đăng nhập, lấy đề bài, nộp công việc xác thực, giám sát thi cử khác 3.2 Lựa chọn phương pháp kiểm sốt Chúng tơi thử nghiệm phương pháp kiểm soát sai hỏng sandbox, guest monitor tập thử nghiệm chương trình từ đơn giản thuộc loại chương trình bình thường, đọc liệu nhiều, ghi liệu nhiều, địi hỏi nhớ lớn địi hỏi cơng suất tính tốn lớn Mỗi chương trình thực với triệu test đo tổng thời gian từ bắt đầu đến kết thúc nhằm kiểm tra hiệu phương pháp kiểm soát Bảng thể kết thực (theo đơn vị giờ) Bảng So sánh hiệu suất ba loại kiểm soát Loại Sandbox Guest Thông thường 0.29h 0.27h High INPUT 0.90h 0.77h High OUTPUT 7.11h 4.52h High MEMORY 2.07h 1.19h High CPU 25.14h 22.74h Monitor 0.27h 0.72h 6.85h 1.45h 22.03h KẾT LUẬN Hệ thống chứng minh thiết kế đạt mục tiêu cốt lõi hệ thống đánh giá tự động: Tự động đề thi với can thiệp tối thiểu cấp quản lý Chấm thi, đánh giá thi sinh viên hoàn toàn tự động Xử lý lỗi bất thường thiết bị phẩn mềm trình thi Ngăn chặn hành vi làm hỏng kỳ thi cách vơ tình cố ý TÀI LIỆU THAM KHẢO [1] Priyadharshini.V, Malathi.A; 2014; Survey on software testing techniques in cloud computing https://arxiv.org/abs/1402.1925 [2] Bernard B, Matteo B, Stefano M, Giovanni M, Luca W; 2018; Contest Management System: a distributed system for running and organizing a programming contest https://cms.readthedocs.io [3] Richard D; 1964; Algorithm 235: Random permutation Communications of the ACM (7): 420 71 ... KẾT LUẬN Hệ thống chứng minh thiết kế đạt mục tiêu cốt lõi hệ thống đánh giá tự động: Tự động đề thi với can thiệp tối thiểu cấp quản lý Chấm thi, đánh giá thi sinh viên hoàn toàn tự động Xử lý... CỨU 3.1 Kiến trúc hệ thống Hệ thống phân tách thành ba khối độc lập, giao tiếp với truy vấn RESTful/API https Khối “Judgement Server”: đóng vai trị server thực việc chấm thi Xây dựng MONO.NET Core... chuẩn, sử dụng rộng rãi hệ thống học máy 2.3 Tự động sinh trộn đề thi Chúng tơi xây dựng thuật tốn (hình dưới) cải biên từ thuật tốn sinh hốn vị ngẫu nhiên [3] để giải vấn đề xây dựng chế đồng thi

Ngày đăng: 09/07/2022, 15:04

Hình ảnh liên quan

Chúng tôi xây dựng một thuật toán (hình dưới) cải biên từ thuật toán sinh hoán vị ng ẫ u  nhiên [3] để giải quyết vấn đề này - Xây dựng hệ thống tự động chấm thực hành môn lập trình

h.

úng tôi xây dựng một thuật toán (hình dưới) cải biên từ thuật toán sinh hoán vị ng ẫ u nhiên [3] để giải quyết vấn đề này Xem tại trang 2 của tài liệu.
Hình 2. Kiến trúc hệ thống - Xây dựng hệ thống tự động chấm thực hành môn lập trình

Hình 2..

Kiến trúc hệ thống Xem tại trang 3 của tài liệu.
Bảng 1. So sánh hiệu suất ba loại kiểm soát - Xây dựng hệ thống tự động chấm thực hành môn lập trình

Bảng 1..

So sánh hiệu suất ba loại kiểm soát Xem tại trang 3 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