Tại buổi sinh hoạt của EdTech Lab sáng ngày 11/2/2025, Trần Duy Việt - sinh viên lớp Công nghệ thông tin 64B đã trình bày về hệ thống thực thi và đánh giá code NEU OJ. Đây là một hệ thống có tính lan toả, bởi hệ thống không giới hạn đối tượng người dùng, cho phép đóng góp và chia sẻ mã nguồn, đề bài (bài toán) giữa các người dùng.
NEU OJ được xây dựng trên Judge0 - một hệ thống thực thi mã nguồn mở; có khả năng biên dịch và thực thi 46 ngôn ngữ lập trình phổ biến như C, C++, Java, Python, v.v...; chạy được nhiều file code kết hợp và tích hợp được thêm nhiều thư viện bên ngoài (về học máy, xử lý dữ liệu, v.v..). Nhiệm vụ chính của Judge0 là thực thi các file code người dùng đưa lên. Để hạn chế quá tải về server, hệ thống này sẽ xếp các lần submit (nộp file code) vào hàng chờ thực thi.
Không chỉ cung cấp môi trường thực hành kĩ năng code online cho người học, NEU OJ còn cho phép người dùng tự tạo các đề bài lập trình để luyện tập và chia sẻ, hoặc tạo các kỳ thi dựa trên các câu hỏi có sẵn để tranh tài với nhau. Người dùng có thể thiết lập các thông tin về kỳ thi như tên kỳ thi, thời gian diễn ra, mật khẩu truy cập (trong trường hợp không muốn công khai kỳ thi) và thang điểm đánh giá.
Trong bối cảnh giảng dạy - học tập, hệ thống này có thể được ứng dụng triển khai cho cả hai đối tượng giảng viên và sinh viên. Giảng viên có thể tạo bài thi, bài kiểm tra với các bài tập và test case sẵn có (được đóng góp bởi nhiều người dùng). Các bài tập được giao cho sinh viên có thể được chấm tự động. Giảng viên dễ dàng quản lý, xây dựng ngân hàng câu hỏi, và có thể tạo các cuộc thi theo chủ đề bài học nhằm mục đích hỗ trợ sinh viên ôn luyện, đào sâu kiến thức đã học trên lớp. Ngoài việc làm các bài tập, tham gia các cuộc thi được giảng viên tổ chức, sinh viên có khả năng tự tạo cuộc thi giữa các đội nhóm để thi đua học tập.
Một số hình ảnh giao diện hệ thống NEU OJ:
Trang chủ hệ thống NEU OJ
Giao diện xem các kỳ thi
Giao diện xem chi tiết một kì thi, gồm các bài tập
Xem nhanh đề bài và yêu cầu, ví dụ của một bài tập trong kì thi
Xem chi tiết bài tập trong một kỳ thi
Trang quản trị: Quản lý kì thi có quyền truy cập và thêm mới kì thi
Trang quản trị: Quản lý bài tập có quyền truy cập và thêm mới bài tập
Chỉnh sửa, cập nhật lại nội dung một bài tập đã có sẵn
Để đánh giá hiệu năng hệ thống, Duy Việt đã giả lập tình huống nhiều người dùng cùng nộp bài, yêu cầu hệ thống đánh giá code, từ đó đo lường và đánh giá lượng yêu cầu được xử lý mỗi giây (RPS) của hệ thống, cũng như thời gian phản hồi của mỗi yêu cầu và số lượng lỗi gặp phải trong hệ thống. Thông qua đo lường và đánh giá, Việt rút ra kết luận rằng tốc độ phản hồi của hệ thống còn chậm, bên cạnh đó, hệ thống phụ thuộc nhiều vào lượng bài tập người dùng đóng góp thêm và chia sẻ cho nhau.
Cuối phần trình bày, các thành viên tham gia buổi sinh hoạt đã đóng góp nhiều ý kiến, đề xuất. Vì hệ thống hướng đến phạm vi người dùng lớn, nên cần tập trung chú trọng vào hiệu năng của hệ thống. Bên cạnh đó, hệ thống có thể mở rộng phát triển thêm một số tính năng như bảng xếp hạng người tham gia làm bài, tham gia kỳ thi; bổ sung thêm tính năng tải nhiều câu hỏi lên website sử dụng file Excel; v.v...
13 tháng 02 2025, 07:01
Diep Anh Nguyen