1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận xây dựng hệ thống hỗ trợ chấm điểm lập trình tự động

157 1 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 157
Dung lượng 6,6 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM PHÙNG THANH TÚ NGUYỄN HỒNG THÁI DƯƠNG KHĨA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG HỖ TRỢ CHẤM ĐIỂM LẬP TRÌNH TỰ ĐỘNG BUILDING AN AUTOMATIC CODE SCORING SYSTEM KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2023 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM PHÙNG THANH TÚ NGUYỄN HỒNG THÁI DƯƠNG KHĨA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG HỖ TRỢ CHẤM ĐIỂM LẬP TRÌNH TỰ ĐỘNG BUILDING AN AUTOMATIC CODE SCORING SYSTEM KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2023 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin – Chủ tịch – Thư ký – Ủy viên – Ủy viên ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc TP HCM, ngày… tháng… năm…… NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: XÂY DỰNG HỆ THỐNG HỖ TRỢ CHẤM ĐIỂM LẬP TRÌNH TỰ ĐỘNG Nhóm SV thực hiện: Cán hướng dẫn/phản biện: Phùng Thanh Tú 19522455 Nguyễn Hoàng Thái Dương 19521409 ThS Thái Thụy Hàn Uyển Đánh giá Khóa luận Về báo cáo: Số trang: Số bảng số liệu: Số tài liệu tham khảo: Số chương: Số hình vẽ: Sản phẩm: Một số nhận xét hình thức báo cáo: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Về nội dung nghiên cứu: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Về chương trình ứng dụng: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Về thái độ làm việc sinh viên: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Đánh giá chung: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Điểm sinh viên: Phùng Thanh Tú:……… /10 Nguyễn Hoàng Thái Dương:……… /10 Người nhận xét (Ký tên ghi rõ họ tên) ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc TP HCM, ngày… tháng… năm…… NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: XÂY DỰNG HỆ THỐNG HỖ TRỢ CHẤM ĐIỂM LẬP TRÌNH TỰ ĐỘNG Nhóm SV thực hiện: Cán hướng dẫn/phản biện: Phùng Thanh Tú 19522455 Nguyễn Hoàng Thái Dương 19521409 ThS Thái Thụy Hàn Uyển Đánh giá Khóa luận Về báo cáo: Số trang: Số bảng số liệu: Số tài liệu tham khảo: Số chương: Số hình vẽ: Sản phẩm: Một số nhận xét hình thức báo cáo: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Về nội dung nghiên cứu: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Về chương trình ứng dụng: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Về thái độ làm việc sinh viên: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Đánh giá chung: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Điểm sinh viên: Phùng Thanh Tú:……… /10 Nguyễn Hoàng Thái Dương:……… /10 Người nhận xét (Ký tên ghi rõ họ tên) LỜI CẢM ƠN Trong vòng năm đại học vừa qua, chúng em xin chân thành cảm ơn quý Thầy Cô, đặc biệt quý Thầy Cơ khoa Cơng nghệ phần mềm, tận tình giảng dạy giúp đỡ chúng em, tạo điều kiện cho chúng em học tập nghiên cứu, đồng thời cung cấp kiến thức tảng trọng yếu cho chúng em để chúng em xây dựng hoàn thành luận văn áp dụng kiến thức q báu q trình phát triển nghiệp sau Chúng em xin chân thành cảm ơn quý thầy cô trường Đại học Công nghệ thông tin, đặc biệt cô Thái Thụy Hàn Uyển tận tình đóng góp ý kiến, đồng thời tạo điều kiện môi trường cho chúng em thử nghiệm khóa luận thực tế, qua hỗ trợ để chúng em tìm thiếu sót, cải thiện hồn thành khóa luận cách tốt Bên cạnh đó, nhóm xin chân thành cảm ơn bạn lớp Hướng đối tượng IT002.N25 dùng thử ứng dụng, tạo điều kiện cho nhóm thử nghiệm khóa luận thực tế, đóng góp phản hồi giúp nhóm cải thiện khóa luận khắc phục thiếu sót mà nhóm khơng phát không thử nghiệm thực tế Trong suốt q trình tìm hiểu thực khóa luận, đề tài sử dụng công nghệ phức tạp công nghệ cũ, thời gian khả có giới hạn nên nhóm cịn nhiều thiếu sót Do đó, chúng em mong nhận thơng cảm ý kiến đóng góp chân thành từ phía q thầy bạn Một lần nữa, nhóm nghiên cứu xin chân thành cảm ơn q thầy bạn Thành phố Hồ Chí Minh, tháng 07 năm 2023 Phùng Thanh Tú Nguyễn Hoàng Thái Dương ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG HỖ TRỢ CHẤM ĐIỂM LẬP TRÌNH TỰ ĐỘNG TÊN ĐỀ TÀI TIẾNG ANH: BUILDING AUTOMATED CODE SCORING SYSTEM Cán hướng dẫn: ThS Thái Thụy Hàn Uyển Thời gian thực hiện: Từ ngày 25/02/2023 đến ngày kết thúc Khóa luận tốt nghiệp Sinh viên thực hiện: Phùng Thanh Tú - 19522455 Nguyễn Hoàng Thái Dương - 19521409 Nội dung đề tài: Giới thiệu đề tài: Hiện lập trình Cơng nghệ thơng tin từ khóa vô hấp dẫn nhiều người quan tâm Trước bối cảnh người người nhà nhà theo ngành thiếu nguồn nhân lực chất lượng cao phục vụ cho đất nước, em nhận việc đào tạo lập trình viên tài bước vơ quan trọng việc đóng góp tạo nguồn nhân lực chất lượng cao cho đất nước, góp phần giải tỏa khát nhân lực vốn thực trạng khơng Việt Nam mà cịn tồn giới Hiện có nhiều ứng dụng giải tập lập trình phổ biến Hackerrank, LeetCode, Codeforce, … hoạt động, ngồi có ứng dụng hỗ trợ dạy học Moodle, Google Classroom, … Tuy nhiên chúng có vấn đề, tập trung vào giải tập, có tương tác giảng viên học viên, tập trung vào việc dạy học lại không hỗ trợ hồn tồn cho việc dạy lập trình Do đó, để giải vấn đề đó, em định bắt tay vào thực đề tài Mục tiêu đề tài: - Xây dựng ứng dụng tạo & quản lý lớp học có hỗ trợ Hệ thống hỗ trợ chấm điểm lập trình tự động Lưu ý ứng dụng tập trung hoàn toàn vào trải nghiệm dạy học, khơng có tính quản lý sinh viên giảng viên - Cho phép người quản trị hệ thống (có quyền truy cập vào máy chủ) mở rộng hệ thống, hỗ trợ thêm ngơn ngữ lập trình mà khơng cần sửa đổi mã nguồn (mà thêm cách thêm liệu database cài đặt compiler runtime ngôn ngữ terminal server container) - Cho phép giảng viên tạo & quản lý môn học, đồng thời mời sinh viên vào lớp thông qua link - Cho phép giảng viên tạo Tài liệu học tập, Bài tập, cài đặt Chấm điểm tự động cho Bài tập lập trình - Cho phép sinh viên truy cập vào lớp học tài liệu lớp học, giải nộp Bài tập lập trình - Hệ thống chấm điểm tự động chấm điểm dựa theo cài đặt mà Giảng viên Tuy nhiên, có vài trường hợp ứng dụng không chấm Đây đoạn mã nguồn sinh viên mà ứng dụng không chấm Hình 5-1 Mã chương trình chấm thử thực tế 120 Hình 5-2 Mã chương trình chấm thử thực tế 121 Hình 5-3 Mã chương trình chấm thử thực tế 122 Đoạn code sử dụng thư viện tổng hợp bits/stdc++.h, thư viện gọi đến tất thư viện C++, làm tăng dung lượng nhớ biên dịch, vượt 128MB (giới hạn dung lượng nhớ mặc định hệ thống) Nhóm nghiên cứu khắc phục tình trạng cách tăng giới hạn dung lượng nhớ biên dịch lên 500MB Lần thử nghiệm thứ 2, kì thi thức mơn Lập trình hướng đối tượng, nhóm nghiên cứu khơng thể để sinh viên nộp trực tiếp lên hệ thống trước, mà sau khì thi, nhóm nghiên cứu lấy mã nguồn nộp sinh viên về, nhập thử vào hệ thống kiểm tra trình chấm Sau đề của lần thử nghiệm Một khách sạn A có phục vụ loại dịch vụ sau đây: - Loại 1: Giặt đồ: phí = số ký * 50 - Loại 2: Thuê xe máy: phí = số ngày * 150 - Loại 3: Đưa rước từ sân bay bến xe khách sạn: miễn phí khách sạn cần biết số người đưa rước để xếp ghế xe Thông tin chung cần quản lý loại dịch vụ: số phòng Thiết kế lớp đối tượng cần thiết theo phương pháp kế thừa, đa hình để thực yêu cầu sau: Nhập danh sách dịch vụ khách hàng sử dụng khách sạn (3đ) Lưu ý: Trong q trình nhập, KHƠNG XUẤT thứ hình giá trị cách khoảng trắng ký tự xuống dòng Dữ liệu vào (*): - Một số nguyên thể số dịch vụ 123 - Bước 1: + Một số nguyên thể loại (1,2 3) + Một số nguyên thể số phòng + Một số nguyên thể số ký (nếu loại 1) số ngày (nếu loại 2) số lượng ghế (nếu loại 3) - Trở lại Bước cịn dịch vụ cần nhập Bài 1: Tính tổng chi phí tất dịch vụ) Đây danh sách Test case lần thử nghiệm thứ 2: Input Output 101 101 208 309 101 1200 1 405 10 500 2 101 101 600 3 101 102 3 102 309 101 203 2 102 102 204 1800 124 102 309 101 303 103 2 302 302 103 103 1950 103 101 101 2 102 101 102 600 101 101 208 309 101 1200 Và kết chấm lần thử nghiệm Full Name Automated Score *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 125 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 1.43 *** 10 *** *** 10 *** 10 *** *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 *** 10 126 Ở lần thử nghiệm nhóm nghiên cứu nhập nộp sinh viên vào hệ thống nên không kiểm tra khả chịu tải hệ thống Tuy nhiên kiểm chứng khả làm việc Engine chấm Lần thử nghiệm lỗi xảy lần trước khơng cịn, khơng cịn phát sinh lỗi dẫn đến khơng quy điểm Hệ thống lần hoạt động ổn so với lần trước Sau thử nghiệm, nhóm nghiên cứu tìm số lỗi cịn tồn hệ thống, kịp thời khắc phục lỗi Nhóm nghiên cứu thử nghiệm tốc độ thực thi tập lập trình loại ngơn ngữ lập trình.Thơng qua thử nghiệm trực tiếp hệ thống, với tốn in dịng chữ Hello, ta thấy ngơn ngữ lập trình sử dụng trình biên dịch (mã Id tương ứng với ngơn ngữ C++), có thời gian chạy gần gấp đôi so với ngôn ngữ sử dụng trình thơng dịch (mã Id tương ứng với ngơn ngữ Lua) Điều có khác biệt tùy vào ngơn ngữ, chí khác tùy vào thuật tốn mà chương trình thực Do lưu ý việc chọn ngơn ngữ lập trình ảnh hưởng đến thời gian chạy chương trình Vì người dạy cần thiết lập Hình 5-4 Mã chương trình minh họa 127 cài đặt thời gian cho phù hợp người học nên cân nhắc việc lựa chọn ngôn ngữ lập trình khác 128 CHƯƠNG 6.1 KẾT LUẬN Kết đạt Thơng qua q trình nghiên cứu xây dựng hệ thống hỗ trợ chấm điểm lập trình tự động, hệ thống cịn chưa hồn thiện mặt kỹ thuật lẫn nghiệp vụ, nhóm đạt kết khả quan mặt kỹ thuật thực tiễn Về mặt kỹ thuật, nhóm đạt kết sau: - Tìm hiểu chế chấm điểm tự động, chất, chế hoạt động, tiềm to lớn mà giải pháp chấm điểm tự động mang lại - Tìm hiểu Linux câu lệnh Linux - Tìm hiểu sử dụng cơng nghệ Sandbox công cụ hỗ trợ sandbox - isolate - Ôn tập lại áp dụng kiến thức thiết kế phát triển phần mềm vào trình xây dựng hệ thống - Tìm hiểu áp dụng Scrum vào trình xây dựng hệ thống - Nâng cao hiểu biết công nghệ phát triển ứng dụng Web (React, Express, …) vào xây dựng hệ thống - Tìm hiểu áp dụng cơng nghệ Cloud thực hành tự triển khai VPS trình triển khai hệ thống - Tìm hiểu vận dụng Infrastructure as Code thơng qua Terraform để tự động hóa trình triển khai phần ứng dụng lên tảng Cloud - Về mặt thực tiễn, nhóm đạt kết sau: - Nâng cao kỹ tìm hiểu kiến thức mới, kỹ nghiên cứu tự học công nghệ - Nâng cao khả làm việc nhóm theo quy trình Scrum - Xây dựng hệ thống chấm điểm lập trình tự động giúp tự động hóa phần cơng việc giảng viên 6.2 Thuận lợi khó khăn Thuận lợi: - Nhóm có tảng xây dựng phát triển ứng dụng Web, ngơn ngữ lập trình JavaScript thư viện, framework JavaScript khơng gặp nhiều trở ngại sử dụng công nghệ Khó khăn: 129 - Thiếu kiến thức chun mơn cần thiết để giải triệt để toán - Lần đầu tiếp xúc với cơng nghệ Sandbox, việc sử dụng triển khai công nghệ chưa tối ưu - Giới hạn mặt hỗ trợ tảng cloud Azure khiến cho ứng dụng khơng thể triển khai tự động hóa tồn - Áp lực thời gian lượng kiến thức cần phải nghiên cứu lớn 6.3 Hướng phát triển Hệ thống hỗ trợ chấm điểm lập trình tự động chưa hồn thiện, bên cạnh đó, hệ thống nhiều tiềm cần khai thác Nhóm nghiên cứu lên kế hoạch định hướng phát triển hệ thống tương lai: - Cải thiện trải nghiệm người dùng để giao diện ứng dụng hệ thống sinh động dễ sử dụng - Tái cấu trúc source code ứng dụng nhiều GitHub Repository để dễ dàng quản lý source code hệ thống - Tự động hóa hồn tồn q trình triển khai hệ thống - Cập nhật liệu môi trường triển khai ứng dụng để ứng dụng hỗ trợ tất ngơn ngữ lập trình phổ biến - Xây dựng tính hỗ trợ cho việc quản lý dành cho tổ chức giáo dục quản lý sinh viên/học viên, quản lí đăng ký học phần, học phí - Thử nghiệm triển khai công nghệ (AI, NLP) vào hệ thống để thực nhiều cách thức chấm điểm 130 TÀI LIỆU THAM KHẢO Theo chuẩn IEEE [1] Difference between Compiler and Interpreter imarchit19 https://www.geeksforgeeks.org/difference-between-compiler-and-interpreter/ (truy cập ngày 28/6/2023) [2] Wikipedia https://en.wikipedia.org/wiki/Interpreter_(computing) (truy cập ngày 28/6/2023) [3] IBM MQ https://www.ibm.com/docs/en/ibm-mq/8.0?topic=commandsstandard-input-output (truy cập ngày 28/6/2023) [4] Github community https://github.com/ioi/isolate (truy cập ngày 28/6/2023) 131 132 PHỤ LỤC Bảng giải Cụm giải Nội dung [] Thể biến hệ thống “” Thể tên thành phần hệ thống giao diện Creator Là người dùng có tồn quyền tùy chỉnh với Khóa học người dùng tạo Non-Creator Là nhũng người dùng tham gia Khóa học Thơng báo Mã thơng báo Nội dung MSG-1 “Login successfully” MSG-2 “Invalid credential” MSG-3 “Register sucessfully” MSG "Register failed " MSG “Password and Re-password must be the same” MSG "Username existed " MSG-CreateSuccess [xxxx] “Create [xxxx] successfully" MSG-CreateFail [xxxx] "Create [xxxx] failed" MSG-UpdateSuccess [xxxx] “Update [xxxx] successfully” MSG-UpdateFail [xxxx] “Update [xxxx] failed" 133 MSG-UpdateSuccess [xxxx] – “Update [xxxx] successfully [bbbb] SubMSG [bbbb] MSG-UpdateFail [xxxx] – SubMSG “Update [xxxx] fail [bbbb] [bbbb] MSG-DeleteSuccess [xxxx] “Delete [xxxx] successfully” MSG-DeleteFail [xxxx] “Delete [xxxx] failed” MSG-DeleteSuccess [xxxx] – “Delete [xxxx] successfully [bbbb]” SubMSG MSG-DeleteFail [xxxx] – SubMSG “Delete [xxxx] failed [bbbb]” MSG-Error [xxxx] “xxxx” 134

Ngày đăng: 04/09/2023, 20:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w