Xây dựng hệ thống online judge cho việc học lập trình

10 32 0
Xây dựng hệ thống online judge cho việc học lập trình

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

Thông tin tài liệu

Trong bài báo này, với mục tiêu giúp cho người học nâng cao hơn kết quả học tập. Chúng tôi đề xuất một hệ thống lập trình trực tuyến với các tính năng đặc thù, phù hợp với sinh viên ngành Công nghệ Thông tin thuộc Đại học khoa học Huế. Các kết quả đánh giá, khảo sát thu được đã cho thấy tính hiệu quả, thu hút người học của mô hình này

TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số (2020) XÂY DỰNG HỆ THỐNG ONLINE JUDGE CHO VIỆC HỌC LẬP TRÌNH Nguyễn Ngọc Thủy*, Võ Việt Dũng, Lê Mỹ Cảnh, Trần Việt Khoa Khoa Công nghệ thông tin, Trường Đại học Khoa học, Đại học Huế * Email: nnthuy@gmail.com Ngày nhận bài: 16/7/2020; ngày hoàn thành phản biện: 21/7/2020; ngày duyệt đăng: 02/10/2020 TÓM TẮT Các hệ thống E-learning, học tập trực tuyến đời ngày nhiều để đáp ứng nhu cầu tự học sinh viên Việc xây dựng mơ để hỗ trợ cho sinh viên ngành công nghệ thông tin nhu cầu cấp thiết, qua nâng cao trình độ kiến thức cho sinh viên Việc đánh giá lực sinh viên trở nên dễ dàng việc đưa tập sát với nội dung môn học phù hợp với nhiều cấp độ, khả người học Trong báo này, với mục tiêu giúp cho người học nâng cao kết học tập Chúng tơi đề xuất hệ thống lập trình trực tuyến với tính đặc thù, phù hợp với sinh viên ngành Công nghệ Thông tin thuộc Đại học khoa học Huế Các kết đánh giá, khảo sát thu cho thấy tính hiệu quả, thu hút người học mơ hình Từ khóa: Máy chấm trực tuyến, kỳ thi, toán ĐẶT VẤN ĐỀ Đặc thù riêng ngành Cơng nghệ thơng tin sinh viên dạy học thực nghiệm nhiều máy tính với nhiều mơn học liên quan đến lập trình Có thể liệt kê số mơn học mà sinh viên ngành công nghệ thông tin phải trãi qua nắm bắt làm chủ, gồm: - Kỹ thuật lập trình - Ngơn ngữ lập trình: C/C++, Java, … - Cấu trúc liệu thuật tốn Nhận thấy nhu cầu thực hành mơn học cần có hệ thống tập, quy trình chấm nghiên cứu phát triển hệ thống dạy chấm trực tuyến nhằm phục vụ việc học, luyện tập kỹ thuật lập trình cho sinh viên ngành Cơng nghệ Thơng tin Đại học Khoa học Huế 39 Xây dựng hệ thống Online Judge cho việc học lập trình Nội dung hệ thống xây dựng tập hợp tập cho môn học: Kỹ thuật lập trình I, II, ơn luyện OLP/ACM Ngồi cịn có tổ chức thi luyện tập định kỳ dành cho tất người thử nghiệm kỳ thi kỳ kết thúc môn cho môn học đặc thù Kỹ thuật lập trình I, II ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Đối tượng nghiên cứu Bài toán (Problem Task): Đây đối tượng quan trọng hệ thống, chuyển tải nội dung môn học đến sinh viên, thể quan hệ hai chiều giảng viên sinh viên Nội dung toán bắt buộc phải bám sát đề cương mơn học nhiều giảng dạy lý thuyết trường Bài toán tạo tác nhân giảng viên Sinh viên: Sinh viên đối tượng thứ hai quan trọng hệ thống mà ta thường gọi người sử dụng Sinh viên sử dụng hệ thống phải giải (lập trình) nhiều tốn với nhiều thể loại, mức độ khó dễ khác nhằm nâng cao kiến thức lập trình Khi gắn kết trách nhiệm, họ phải tham gia kỳ thi để có kết đánh giá, ví dụ họ phải tham gia thi kỳ, kết thúc kỳ để lấy điểm cho môn học kỹ thuật lập trình Giảng viên: Giảng viên tác nhân hệ thống, công việc họ xây dựng toán cho hệ thống triển khai kỳ thi Một toán gắn liền với thuộc tính như: thể loại hay dạng tốn, điểm số, thời gian thực hiện, số lượng test case Tất giá trị thuộc tính định giảng viên 2.2 Phương pháp nghiên cứu Trọng tâm hệ thống đối tượng tốn, việc xây dựng tốn điểm quan trọng nhất, đề xây dựng ta dựa vào yếu tố sau: - Dựa đề cương môn học: Đây yếu tố để xây dựng tốn, việc bám sát đề cương mơn học giúp sinh viên tiếp cận tốt kiến thức lý thuyết truyền thụ giảng đường Ngồi việc đọng đề cương mơn học vào tốn tiêu chí khảo thí, kiểm tra chất lượng môn học [1] - Dựa tài nguyên website thi tiếng: Tài nguyên Internet xem kho báu, việc khai thác kịp thời đem lại cho ta nhiều lợi ích Trong lĩnh vực lập trình trực tuyến, nhiều trường học, cơng ty tạo trì số websitecho lập trình cạnh tranh, vài website tiêu biểu bảng 1: - Dựa kiến thức, kinh nghiệm giảng viên: Quan trọng hết kiến thức kinh nghiệm giảng viên, q trình tích lũy thời gian dạy 40 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số (2020) nghiên cứu giúp giảng viên đưa toán tốt để sinh viên tiếp cận tốt mơn học 2.3 Phân tích, thiết kế triển khai hệ thống Sau tiến hành khảo sát, nghiên cứu chức người sử dụng (hầu hết website trực tuyến có cấu trúc giống nhau), chúng tơi triển khai cài đặt hệ thống phần mềm mã nguồn mở DOM Judge [3] Đây phần mềm mã nguồn mở chạy ổn định nhiều trường Đại học chọn làm nhân để cài đặt hệ thống Một số thành phần DOMjudge: - Các chức dành cho toán (Problem) - Các chức dành cho kỳ thi (Contest) - Các chức dành cho thí sinh ( Contestant) đội thi (Team) 2.3.1 Người dùng hệ thống 1) Biểu đồ ngữ cảnh hệ thống (System Context Diagram) Hình Biểu đồ ngữ cảnh hệ thống 2) Biểu đồ usecase hệ thống thể chức hệ thống gồm: i) Người dùng Sinh viên: - Tìm kiếm liệt kê tập: Chức cho phép sinh viên liệt kê danh sách tập theo thể loại - Nộp xem kết quả: Nộp giải sau làm xem kết quả, chưa cho phép làm lại - Tham khảo mã nguồn người khác: Saukhi nộp thành cơng, sinh viên xem giải người khác để học hỏi rút kinh nghiệm 41 Xây dựng hệ thống Online Judge cho việc học lập trình - Tham gia kỳ thi: Cho phép sinh viên tham gia thi ii) Người dùng giảng viên: - Quản lý hệ thống tập: Là chức tập, chèn, sửa, xóa, cập nhật tốn lên hệ thống - Quản lý kỳ thi: Tạo kỳ thi bao gồm chọn bài, thiết lập ngày, thi, thời lượng thi, cách chấm phân điểm cho thi - Quản lý viết: Các viết hướng dẫn học tập hỗ trợ kiến thức cho sinh viên - Kiểm tra gian lận: Kiểm tra thông tin gian lận dựa vào chức so sánh mã nguồn iii) Người quản trị: - Cấu hình thông số hệ thống máy chấm - Phân quyền người sử dụng Hình Biểu đồ use-case hệ thống 2.3.2 Quy trình xây dựng tốn Các tốn xây dựng thơng qua bước sau: Bước Định nghĩa toán Bước Xây dựng test case Bước Kiểm tra test case 42 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số (2020) Bước Thực việc kiểm chứng toán hệ thống thi Việc định nghĩa toán thường dựa vào việc phân lớp toán theo chủ đề mơn học, ta có chủ đề sau lập trình: Các tốn Ad-hoc, tức tốn mang tính chất cài đặt để tìm hiểu ngơn ngữ lập trình,lý thuyết số, tổ hợp, lý thuyết đồ thị, xử lý xâu, tốn hình học, cấu trúc liệu, thuật tốn tìm kiếm xếp Ngồi việc phân lớp tốn theo chủ đề ta cịn định nghĩa tốn theo từ khóa Việc định nghĩa tốn theo từ khóa giúp người học tiếp cận toán liên quan cách cụ thể hơn, hình thành kỹ thuật lập trình theo kỹ thực hành Các từ khóa thuật ngữ tin học gắn liền với thuật toán, cấu trúc liệu, ví dụ như: chia để trị, quay lui, tìm kiếm nhị phân, quy hoạch động, tham lam[2] Sau định nghĩa toán với nội dung cần giải, khơng gian tốn xác định thơng qua ràng buộc mặt thời gian, liệu Quy trình xây dựng testcase, quy trình gắn liền với tác giả toán Ở phải thực giải tốn thực cách lập trình chi tiết, tính tốn tay, sử dụng cơng cụ tính tốn kết testcase với liệu vào tương ứng [4] Đây toán cụ thể riêng biệt cho toán tổng quát mà ta 2.4 Đề xuất bổ sung mơn học Sau q trình thực nghiệm liên tục cho mơn học Kỹ thuật lập trình I, II bốn năm học với kết khả quan: - Thứ nhất: nâng cao trình độ người học đánh giá bạn sinh viên trường làm với doanh nghiệp Kết thi Olympic Tin học Sinh viên tồn quốc vơ ấn tượng với giả nhì, giải 3, giải KK (tính từ 2016-2019 với lượt thi sinh viên) - Thứ hai: nâng cao cách dạy, đổi phương pháp nâng cao kiến thức truyền thụ giáo viên đề thi tập - Thứ ba: việc thi cử hồn tồn cơng tâm, kết chấm xác, nhanh tiết kiệm Với nhiều ưu điểm mạnh dạn đề xuất với Nhà trường, Khoa mở rộng thêm nhiều môn học đặc thù đồng thời nhận chuyển giao hệ thống từ để vận hành tốt hơn, đưa hệ thống đến với nhiều giảng viên nhằm phát triển nội dung hệ thống tốt hơn, sinh động 43 Xây dựng hệ thống Online Judge cho việc học lập trình KHẢO SÁT VÀ ĐÁNH GIÁ Để phát triển tốt chức hệ thống khảo sát tính thực tiễn ứng dụng Chúng khảo sát sinh viên thuộc nhóm người dùng hệ thống Chúng tơi xử lý thống kê đưa kết sau sau: - Khảo sát trình học tập trang web Dữ liệu khảo thời gian, địa điểm làm tập, ngơn ngữ lập trình sử dụng kèm với phần lý thuyết học độ khó dễ dạng tập trang Kết bảng sau: Bảng Dữ liệu khảo sát học tập hệ thống A B C D Địa điểm Ở trường Thư viện Ở nhà Khác Tỷ lệ (%) 6.40 7.40 80.80 5.60 Ngôn ngữ C/C++ Pascal Java Khác Tỷ lệ (%) 87.10 7.30 3.20 2.40 Bài tập Dễ Khó Vừa phải Quá khó Tỷ lệ(%) 2.40 24.60 65.10 7.90 Với liệu bảng cho thấy số 80% sinh viên tham gia làm tập hệ thống nhà, ngơn ngữ sử dụng lập trình C,C++ theo lý thuyết dạy Trường với tỷ lệ 65% sinh viên cho độ khó tập hệ thống mức độ vừa phải - Khảo sát chức hệ thống Mục khảo sát chất lượng chức hệ thống gồm: Tính chặt chẽ hệ thống chấm bài, tính chống gian lận, tính ổn định hệ thống, tính hiệu cấp thiết hệ thống Bảng Dữ liệu khảo sát tính hệ thống A B C D Chặt chẽ Rất chặt chẽ Chặt chẽ Còn lỗi Khác Tỷ lệ (%) 73.60 15.20 10.40 8.00 Ổn định Rất ổn định Ổn định Còn lỗi Khác Tỷ lệ (%) 91.30 4.00 2.40 2.40 Hiệu Hiệu Không hiệu Rất hiệu Khác Tỷ lệ(%) 78.60 4.80 11.10 5.60 Với liệu bảng cho thấy có 73% sinh viên cho hệ thống chấm chặt chẽ, tỷ lệ 91% cho hệ thống chạy ổn định với nhiều chức như: chấm theo testcase, refresh điểm nhờ công nghệ nodejs, chức chống gian lận với hàm API cung cấp trường Đại học Stanford đem lại hiệu cao học tập với tỷ lệ bình chọn 78% 44 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số (2020) KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 So sánh việc dạy trực tuyến phần mềm Google hệ thống Online Judge Thực việc học phần mềm Google chẳng khác nhiều với học trực tiếp có giới hạn mặt giao tiếp người dạy người học Sự tương tác không tốt người dạy người học dẫn đến người dạy phải đầu tư nhiều tập mong chuyển tải nội dung đến người học Tuy nhiên, phần tập mà người dạy công phu chuẩn bị khơng có kết tốt việc chấm thực cách thủ công Một phần đặc thù môn học mà việc kiểm tra kiến thức người học khác với môn học khác (Google đưa test dạng trắc nghiệm) Trong đó, hệ thống Online Judge chúng tơi thực việc kiểm tra kiến thức người học tốt Và cần tương tác với người học qua hệ thống khác email, facebook chúng tơi lập lịch học thực hành môn đặc thù ngành cách hệu Tuy nhiên, có kết hợp hai hệ thống việc dạy học trở nên tuyệt vời, cụ thể học kỳ vừa qua thực Bỏ qua số yếu tố khách quan sở vật chất người học 4.2 Kết luận Qua việc xây dựng thành công hệ thống năm sử dụng Chúng đánh giá số kết sau: - Chủ động việc phân bố lịch dạy, nội dung dạy: Chúng dạy thực tế cho sinh viên kết thúc thành công với việc học thi hệ thống - Các kỳ thi, tập chấm cách cơng khai, minh bạch có kết lập tức: Việc phân loại thí sinh cịn dựa vào chức chấm điểm theo testcase tính chúng tơi phát triển Do hệ thống có thiết lập chức phát chép nên hạn chế tối đa tính gian lận thi - Sinh viên chủ động học tập lúc, nơi: Do hệ thống chạy Web nên hầu hết sinh viên chủ động làm thời gian nào, nhật ký nộp hệ thống cho thấy hầu hết thời gian ngày 24/24 có người làm tập Việc chủ động học tập có bảng xếp hạng cao cho thấy kết thi tốt sinh viên thi 4.3 Hướng phát triển Hệ thống xây dựng dựa yêu cầu thay đổi phương pháp dạy học nhà Trường, thời điểm viết báo nhiều đáp ứng số lượng định nhu cầu học tập, thực hành, tự học Sinh viên Khoa Công nghệ Thông tin, Đại học Khoa học Huế Trong tương lai chúng tơi đề xuất kinh phí để tiếp 45 Xây dựng hệ thống Online Judge cho việc học lập trình tục triển khai thêm số mơn học mà thay học nhiều lý thuyết chuyển đổi sang học trực tuyến hệ thống với nhiều ưu điểm bật Những môn học đề xuất: - Lập trình Java - Lập trình hướng đối tượng - Ngơn ngữ truy vấn có cấu trúc (SQL) - Cấu trúc liệu giải thuật - Ngôn ngữ Ruby TÀI LIỆU THAM KHẢO [1] Jaap Eldering, Nicky Gerritsen, Keith Johnson, Thijs Kinkhorst, and Tobias Werth, https://www.domjudge.org/intro, Last modified: Sunday, 12-Feb-2017 [2] Emil KELEVEDJIEV, Zornitsa DZHENKOVA, Tasks and Training the Youngest Beginners for Informatics Competitions,Olympiads in Informatics, 2008, Vol © 2008 Institute of Mathematics and Informatics, Vilnius, p 75-89 [3] Sébastien COMBÉFIS, Jérémy WAUTELET, Programming Trainings and Informatics Teaching Through Online Contests, Olympiads in Informatics, 2014, Vol © 2014 Vilnius University, IOI, p 21-34 [4] Krassimir MANEV, Biserka YOVCHEVA, Milko YANKOV, Peter PETROV, Testing of Programs with Random Generated Test Cases, Olympiads in Informatics, 2010, Vol © 2010 Institute of Mathematics and Informatics, Vilnius, p 76-86 46 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, Trường Đại học Khoa học, ĐH Huế Tập 17, Số (2020) IMPLEMENTATION OF AN ONLINE JUDGE SYSTEM FOR PROGRAMMING TRAINING IN UNIVERSITY Nguyen Ngoc Thuy*, Vo Viet Dung, Le My Canh, Tran Viet Khoa Faculty of Information Technology, University of Sciences, Hue University * Email: nnthuy@gmail.com ABSTRACT The number of E-learning system has increasingly emerged to meet student's selfstudy needs It is inevitable to build an E-learning system for Information Technology (IT) students, therefore they are enhanced the knowledge Classifying students now becomes easier by giving tests which are close to the subject and suitable for levels and abilities of learners In this article, with the purpose of improving the learning results of learners, we propose an online judge system model in consideration of specific requirements of IT students of University of Sciences, Hue University The results of assessments and surveys demonstrated the effectiveness and attraction of this system Keywords: contest, online judge, problems 47 Xây dựng hệ thống Online Judge cho việc học lập trình Nguyễn Ngọc Thủy sinh ngày 21/04/1976 Quảng Bình Năm 1998, ông tốt nghiệp cử nhân ngành CNTT; năm 2006, ông tốt nghiệp thạc sỹ ngành CNTT Trường Đại học khoa học, ĐH Huế Hiện ông giảng viên Trường Đại học khoa học, ĐH Huế Lĩnh vực nghiên cứu: Mạng máy tính Võ Việt Dũng sinh ngày 2/01/1978 Hà Nội Năm 1999, ông tốt nghiệp cử nhân ngành CNTT; năm 2017, ông tốt nghiệp thạc sỹ ngành CNTT Trường Đại học khoa học, ĐH Huế Hiện ông giảng viên Trường Đại học khoa học, ĐH Huế Lĩnh vực nghiên cứu: Mạng máy tính Lê Mỹ Cảnh sinh ngày 26/07/1988 Quảng Trị Năm 2010, ông tốt nghiệp cử nhân ngành CNTT Trường Đại học Khoa học, ĐH Huế Năm 2015, ông tốt nghiệp thạc sỹ ngành CNTT Đài Bắc, Đài Loan Hiện ông giảng viên Trường Đại học khoa học, ĐH Huế Lĩnh vực nghiên cứu: Công nghệ phần mềm Trần Việt Khoa sinh ngày 19/06/1972 Thanh Hóa Năm 1995, ơng tốt nghiệp cử nhân ngành Tốn Tin; năm 2004, ơng tốt nghiệp thạc sỹ ngành CNTT Trường Đại học khoa học, ĐH Huế Hiện ông giảng viên Trường Đại học khoa học, ĐH Huế Lĩnh vực nghiên cứu: Khoa học máy tính 48 .. .Xây dựng hệ thống Online Judge cho việc học lập trình Nội dung hệ thống xây dựng tập hợp tập cho môn học: Kỹ thuật lập trình I, II, ơn luyện OLP/ACM Ngồi cịn... 45 Xây dựng hệ thống Online Judge cho việc học lập trình tục triển khai thêm số mơn học mà thay học nhiều lý thuyết chuyển đổi sang học trực tuyến hệ thống với nhiều ưu điểm bật Những môn học. .. đưa hệ thống đến với nhiều giảng viên nhằm phát triển nội dung hệ thống tốt hơn, sinh động 43 Xây dựng hệ thống Online Judge cho việc học lập trình KHẢO SÁT VÀ ĐÁNH GIÁ Để phát triển tốt chức hệ

Ngày đăng: 08/06/2021, 13:15

Từ khóa liên quan

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

Tài liệu liên quan