ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC SƯ PHẠM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC NĂM 2020 XÂY DỰNG HỆ THỐNG CHẤM BÀI TỰ ĐỘNG HỖ TRỢ GIẢNG DẠY CÁC MÔN HỌC LẬP TRÌNH Người/Nhóm thực hiện
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC NĂM 2020
XÂY DỰNG HỆ THỐNG CHẤM BÀI TỰ ĐỘNG HỖ TRỢ GIẢNG DẠY CÁC MÔN HỌC LẬP TRÌNH
Người/Nhóm thực hiện: XXXXXXXXXXXX
Đà Nẵng, 5/2020
Trang 2MỤC LỤC
Trang
DANH MỤC CÁC HÌNH VẼ 4
MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ XXXXXXXXXX 10
1.1 GIỚI THIỆU 10
1.2 HỆ THỐNG PC2 11
1.2.1 Môi trường thực thi SDK 12
1.2.2 Khởi động các file chương trình trong PC2 12
1.3 MỘT SỐ HỆ THỐNG HỖ TRỢ NỘP VÀ CHẤM BÀI TỰ ĐỘNG 21
1.3.1 Hệ thống CMS 21
1.3.2 Hệ thống Codeforce 23
CHƯƠNG 2: CÁC CÔNG NGHỆ HỖ TRỢ XÂY DỰNG HỆ THỐNG 25
2.1 NGÔN NGỮ PHP VÀ CƠ SỞ DỮ LIỆU MYSQL 25
2.1.1 Hệ quản trị cơ sở dữ liệu MYSQL 25
2.1.2 Cài Đặt Xampp 26
2.1.3 Hướng dân tạo database trong Xampp 30
2.1.4 Ngôn ngữ lập trình PHP 32
2.2 CÔNG CỤ CHẤM BÀI TỰ ĐỘNG THEMIS 32
2.2.1 Cài đặt và khởi động Themis 33
2.2.2 Chuẩn bị một kỳ thi 34
2.2.3 Nạp danh sách bài thi 35
2.2.4 Đặt cấu hình bài thi 35
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG XXXXXXXXXXX 41
3.1 QUY TRÌNH NỘP VÀ CHẤM BÀI TỰ ĐỘNG 41
3.1.1 Viết code 42
Trang 33.1.3 Hệ thống chấm bài 42
3.2 XÂY DỰNG HỆ THỐNG NỘP VÀ CHẤM BÀI TỰ ĐỘNG 43
3.2.1 Cơ sở vật chất và môi trường xây dựng hệ thống 43
3.2.2 Xây dựng website nộp bài tự động 43
3.2.3 Xây dựng các bộ test cho đáp án 44
3.2.4 Tích hợp hệ thống 45
3.3 ĐÁNH GIÁ KẾT QUẢ TRIỂN KHAI 49
KẾT LUẬN 52
TÀI LIỆU THAM KHẢO 53
Trang 4DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Giao diện hệ thống PC2 server 13
Hình 1.2: Cài đặt mật khẩu 14
Hình 1.3: Server được tạo ra có tên Site1 15
Hình 1.4: Giao diện pc2 administrator 15
Hình 1.5: Giao diện chức năng pc2 administrator 16
Hình 1.6: Giao diện tạo user 16
Hình 1.7: Thiết lập cấu hình bài toán 17
Hình 2.1: Mô hình tương tác giữa web PHP với MyQL 26
Hình 2.2: Giới thiệu về xampp 27
Hình 2.3: Cài đặt xampp 27
Hình 2.4: Cài đặt xampp 28
Hình 2.5: Cài đặt đường dẫn xampp 28
Hình 2.6: Đang cài đặt xampp 29
Hình 2.7: Kết thúc cài đặt xampp 29
Hình 3.1: Quy trình nộp và chấm bài tự động 41
Hình 3.2: Cơ sở dữ liệu người học 43
Hình 3.3: Trang nộp bài tự động 44
Hình 3.4: Trang nộp bài tự động 45
Hình 3.5: Thanh công cụ của Themis 46
Hình 3.6: Thiết lập đường dẫn chứa bài thi và đáp án 46
Hình 3.7: Chọn thư mục chứa đề thi 47
Hình 3.8: Chọn thư mục chứa bài làm của sinh viên 47
Trang 5MỞ ĐẦU
1 Tính cấp thiết của đề tài
Giới thiệu tình hình trong nước và quốc tế về các vấn đề liên quan đến đề tài
Từ đó nêu lý do chọn đề tài
2 Mục tiêu nghiên cứu
- Làm đề tài này để đạt được cái gì? (Học tập và nghiên cứu các kiến thức như sau: Phân tích và thiết kế hệ thống thông tin, cách xây dựng một trang web/ứng dụng…)
- Xây dựng sản phẩm là trang website/ứng dụng
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: ????
- Phạm vi nghiên cứu: giới hạn trong phạm vi nào?
4 Hướng tiếp cận và phương pháp nghiên cứu
4.1 Cách tiếp cận
Từ nhu cầu học lập trình của sinh viên, hạn chế của các phương pháp truyền thống và ưu điểm của các giải pháp tự động để xây dựng hệ thống hỗ trợ chấm
và nộp bài tự động
4.2 Phương pháp nghiên cứu
Cách để làm đề tài này?
5 Bố cục của đề tài
Đề tài được phân thành ba chương với cấu trúc như sau:
Chương 1: Tổng quan về XXXX
Trang 6Chương này giới thiệu tổng quan về …
Chương 2: <Các công cụ hỗ trợ xây dựng hệ thống>
Dùng công cụ gì để viết ứng dụng/web? (MySQL và ngôn ngữ PHP, Java, C#, Android/iOS )
Chương 3: Xây dựng hệ thống/ứng dụng XXXX
Chức năng, giao diện,… ra sao?
Cuối cùng là phần kết luận và hướng phát triển
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ XXXXXX
1.1 GIỚI THIỆU
Hiện nay, trện thệ giới cũng như ớ Việt Nam
1.2 HỆ THỐNG TTT
Khới động PC2 sệrvệr qũa filệ pc2server.bat, ta đước ma&n hì&nh như
hì&nh dưới đay:
Hình 1.1: Giao diện hệ thống PC2 server
Ma+c đinh chộ la,n đa,ũ tiện chộ tện đa+ng nhap cũa PC2 sệrvệr la& “site1”,
khộng cộ passwộrd
Saũ khi đa+ng nhap, PC2 yệũ ca,ũ ca&i đa+t passwộrd chình chộ tộa&n bộ PC2,
ta đước ma&n hì&nh dưới đay:
Trang 8Hình 1.2: Cài đặt mật khẩu
Saũ khi ca&i đa+t xộng passwộrd chũ, ma+c đinh PC2 sệ tư taộ ra 1 sệrvệr
tện la& site1, ta đước ma&n hì&nh dưới đay (Hì&nh 1.3).
Như vay ta đa khới động xộng 1 sệrvệr chộ PC2
1.3 MỘT SỐ HỆ THỐNG HỖ TRỢ XXXXXXXXX
Ngoài hệ thống XXX đã có từ lâu, hiện nay trên thế giới cũng đã có nhiều hệ thống triển khai hỗ trợ nộp và chấm bài tự động Các hệ thống này được triển khai trên nền hệ điều hành Unix hoặc Ubuntu Sau đây là một số hệ thống thông dụng hiện nay:
Trang 9Hệ thống chấm thi CMS (Contest Management System) chuyên được sử dụng cho các kỳ thi Olympic Tin học quốc tế (IOI):
http://cms.readthedocs.org/en/latest/Introduction.html
1 Đăng nhập vào hệ thống CMS
Sử dụng trình duyệt (Chrome/Firefox) vào địa chỉ: 192.168.10.102:8888 Sau đó đăng nhập bằng User và Password User chính là SBD của các bạn, Password do BTC cung cấp
Nếu không hiển thị ngôn ngữ tiếng Anh các bạn có thể lựa chọn ngôn ngữ ở nút góc trên bên phải
Hình 1.14: Đăng nhập hệ thống CMS
2 Đề bài và cú pháp biện dịch
Thí sinh có thể tải đề bài ở mục Statement Trong mỗi bài đều hiển thị cú pháp biên dịch sẽ được sử dụng để chấm bài đó
Cụ thể là các cú pháp sau:
Trang 10CHƯƠNG 2: CÁC CÔNG NGHỆ HỖ TRỢ
2.1 NGÔN NGỮ PHP VÀ CƠ SỞ DỮ LIỆU MYSQL
2.1.1 Hệ quản trị cơ sở dữ liệu MYSQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, đơn giải, linh hoạt, ổn định và dễ sử dụng,
có tính khả chuyển, đặc biệt là miễn phí hoặc tốn rất ít phí, hoạt động trên nhiều
hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ
và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32, Win 64 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS
…
Trang 11Hình 2.1: Mô hình tương tác giữa web PHP với MyQL
2.1.2 Cài Đặt Xampp
Xampp là một chương trình máy chủ ảo Web được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpmyadmin Không như Appserv, Xampp có chương trình quản lý khá tiện lợi, cho phép tự động bật tắt hoặc khởi động lại các dịch vụ máy chủ bất ký lúc nào
Hình 2.2: Giới thiệu về xampp
…
Trang 12CHƯƠNG 3: XÂY DỰNG HỆ THỐNG KKKKK
Chương này tiếp tục vận dụng các công nghệ và công cụ chấm bài tự động
để đề xuất giải pháp xây dựng hệ thống nộp và chấm bài tự động hỗ trợ dạy và học lập trình Các phần tiếp theo của Chương này tập trung nghiên đề xuất quy trình nộp và chấm bài tự động, các công đoạn xây dựng hệ thống và đánh giá kết quả triển khai
3.1 QUY TRÌNH XXXX
Saũ đay la& sớ độ, triệ9n khai qũy trì&nh nộp va& cham ba&i tư động (Hì&nh 1):
Trang 13Saũ khi đước trang bi cac kiện thưc ca,n thiệt, với mộ:i đệ, ba&i đa chộ, sinh viện sệ thưc hiện cac bước saũ:
Bước 1: Độc đệ9 hiệ9ũ đệ, ba&i tộan.
Bước 2: Xac đinh đa,ũ va&ộ va& đa,ũ ra cũa ba&i tộan.
Bước 3: Phát thảo các mô hình có thể để giải bài toán.
Bước 4: Phân tích các chi tiết cụ thể của bài toán.
Bước 5: Chọn và củng cố các mô hình tối ưu để giải quyết bài toán.
Bước 6: Phân rã giải pháp đã chọn thành các modul nhỏ hơn để lập trình.
Bước 7: Viết mã lệnh
Bước 8: Chạy thử nghiệm
Bước 9: Kiểm tra tính đúng đắn, tính phổ quát và tính hiệu quả của chương
trình
3.1.2 Nộp bài
Saũ khi đa kiệ9m tra, hộa&n thiện ba&i la&m cũa mì&nh, sinh viện sệ nộp ba&i la&m cũa mì&nh lện hệ thộng cham ba&i thộng qũa một trang wệbsitệ dộ chũng tội taộ ra đệ9 hộ: trớ việc nộp ba&i đước thũan tiện
3.1.3 Hệ thống chấm bài
Hệ thộng saũ khi nhan ba&i cũa sinh viện sệ tư động biện dich, chay chướng trì&nh va& cham kệt qũa thệộ đũng cac bộ tệst đap an ma& chũng tội đa xay dưng
Saũ khi cham xộng, hệ thộng sệ tư động thộng baộ kệt qũa chộ ngướ&i hộc kệt qũa ba&i la&m cũa mì&nh: nệũ đũng thì& nhiệm vũ đa hộa&n tha&nh, ngước lai ngướ&i hộc phai qũay lai đệ9 kiệ9m tra mì&nh sai sột ớ đaũ, cap nhat việt cộdệ va& gới lai chộ hệ thộng cham
Trộng giai độan na&y, giaộ viện cũng cộ thệ9 tham gia hộ: trớ, tư van chộ sinh viện vệ, nhưng điệ9m sai, thiệũ sột cũa ngướ&i hộc đệ9 hộ hộa&n thiện ky na+ng thưc ha&nh cũa mì&nh
Trang 143.2 XÂY DỰNG HỆ THỐNG XXXXXXXXXXX
Đệ9 triệ9n khai xay dưng hệ thộng, chũng tội thưc hiện thệộ trì&nh tư saũ:
3.2.1 Cơ sở vật chất và môi trường xây dựng hệ thống
May cham: cộ thệ9 dũ&ng may sệvệr hộa+c laptộp
Hệ thộng may tình ca nhan đệ9 la&m ba&i
Hệ thộng mang cũc bộ hộa+c mang intệrnệt: kệt nội cac may la&m ba&i với may cham
Pha,n mệ,m cham ba&i tư động: Thệmis
3.2.2 Xây dựng website
Chũng tội sư dũng ngộn ngư PHP va& cớ sớ dư liệũ MySQL đệ9 xay dưng wệbsitệ nộp ba&i tư động
Cac bước tiện ha&nh xay dưng wệbsitệ nộp ba&i đước thưc hiện như saũ:
Bước 1: Xay dưng cớ sớ dư liệũ ngướ&i hộc, mộ:i sinh viện đệ,ũ cộ một ta&i
khộan (ũsệr) va& mat kha9ũ (passwộrd) (Hì&nh 3.2)
Hình 3.2: Cơ sở dữ liệu người học
Trang 15Ngộa&i ũsệr va& passwộrd, trện trang wệb cộ&n cộ thệm cac thộng tin: Tện ba&i tộan (Prộblệm ID), chộn ngộn ngư lap trì&nh (Prộgramming Langũagệ) va& vũ&ng Sộũrcệ cộdệ (chưa nội dũng độan cộdệ cũa chướng trì&nh saũ khi hộa&n thiện)
…
Trang 16KẾT LUẬN
1 Các kết quả đạt được
Đã làm được gì???
2 Hạn chế của đề tài
Cái gì chưa làm được?
3 Hướng phát triển
Hướng phat triệ9n trộng tướng lai la& gì&? Cai tiện, bộ9 sũng?
Trang 17TÀI LIỆU THAM KHẢO
[1] Phuong A PHAM, Man D NGUYEN, Long Q NGUYEN, Bao N LE
(2014), “Learning Computer Programming in CDIO’S Team Settings”,
Proceedings of the 10th Annual International CDIO Conference, Universitat Politècnica de Catalunya, Barcelona, Spain.
[2] Phạm Anh Phương, Trần Văn Hưng (2015), “Huấn luyện lập trình nhóm
theo tiếp cận CDIO”, Kỷ yếu Hội thảo khoa học toàn quốc: Bồi dưỡng
năng lực cho giảng viên các trường Sư phạm, NXB Thông tin và Truyền
thông, 2015, trang 895-903
[3] http://www.ecs.csus.edu/pc2/
[4] http://codeforces.com/
[5] http://vnoi.info/
[6] http://laptrinh.ntu.edu.vn/