ĐẠ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 HOÀ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 HOÀ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 …………………. của Hiệu trưởng Trường Đại học Công nghệ Thông tin. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP. 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 bộ hướng dẫn/phản biện: Phùng Thanh Tú 19522455 ThS.
Thái Thụy Hàn Uyển Nguyễn Hoàng Thái Dương 19521409 Đánh giá Khóa luận 1. Về cuốn báo cáo: Số trang: Số chương: Số bảng số liệu: Số hình vẽ: Số tài liệu tham khảo: Sản phẩm: Một số nhận xét về hình thức cuốn báo cáo: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 2. Về nội dung nghiên cứu: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 3. Về chương trình ứng dụng: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 4.
Về thái độ làm việc của sinh viên: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Đánh giá chung: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Điểm từng 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 và ghi rõ họ tên) ĐHQG TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP. 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 bộ hướng dẫn/phản biện: Phùng Thanh Tú 19522455 ThS. Thái Thụy Hàn Uyển Nguyễn Hoàng Thái Dương 19521409 Đánh giá Khóa luận 5.
Về cuốn báo cáo: Số trang: Số chương: Số bảng số liệu: Số hình vẽ: Số tài liệu tham khảo: Sản phẩm: Một số nhận xét về hình thức cuốn báo cáo: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 6. Về nội dung nghiên cứu: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 7. Về chương trình ứng dụng: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… 8. Về thái độ làm việc của sinh viên: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Đánh giá chung: …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Điểm từng 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 và ghi rõ họ tên) LỜI CẢM ƠN Trong vòng 4 năm đại học vừa qua, chúng em xin chân thành cảm ơn các quý Thầy Cô, đặc biệt là quý Thầy Cô khoa Công nghệ phần mềm, đã tận tình giảng dạy và giúp đỡ chúng em, tạo điều kiện cho chúng em học tập và nghiên cứu, đồng thời cung cấp những kiến thức nền tảng trọng yếu cho chúng em để chúng em có thể xây dựng và hoàn thành luận văn cũng như áp dụng những kiến thức quý báu đó trong quá trình phát triển sự nghiệp sau này.
Chúng em xin chân thành cảm ơn quý thầy cô của trường Đại học Công nghệ thông tin, đặc biệt là cô Thái Thụy Hàn Uyển đã tận tình đóng góp những ý kiến, đồng thời tạo điều kiện và môi trường cho chúng em thử nghiệm khóa luận trong thực tế, qua đó hỗ trợ để chúng em có thể tìm ra những thiếu sót, cũng như cải thiện và hoàn thành khóa luận một cách tốt nhất. Bên cạnh đó, nhóm xin chân thành cảm ơn các 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 trong thực tế, cũng như đóng góp những phản hồi giúp nhóm cải thiện khóa luận cũng như khắc phục những thiếu sót mà nhóm sẽ không phát hiện được nếu không thử nghiệm thực tế. Trong suốt quá trình tìm hiểu và thực hiện khóa luận, do đề tài sử dụng cả những công nghệ mới phức tạp và những công nghệ khá cũ, thời gian và khả năng có giới hạn nên nhóm vẫn còn nhiều thiếu sót. Do đó, chúng em rất mong nhận được sự thông cảm và những ý kiến đóng góp chân thành từ phía quý thầy cô và các bạn.
Một lần nữa, nhóm nghiên cứu xin chân thành cảm ơn quý thầy cô và các 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 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN ĐỀ 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 bộ 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: 1.
Giới thiệu đề tài: Hiện nay lập trình và Công nghệ thông tin là một từ khóa vô cùng hấp dẫn được rất nhiều người quan tâm. Trước bối cảnh người người nhà nhà theo ngành nhưng vẫn thiếu nguồn nhân lực chất lượng cao phục vụ cho đất nước, em nhận ra việc đào tạo các lập trình viên tài năng là một bước vô cùng quan trọng trong việc đóng góp tạo ra nguồn nhân lực chất lượng cao cho đất nước, góp phần giải tỏa cơn khát nhân lực vốn đã là thực trạng ở không chỉ Việt Nam mà còn trên toàn thế giới. Hiện nay có rất nhiều ứng dụng giải bài tập lập trình phổ biến như Hackerrank, LeetCode, Codeforce, … đã và đang hoạt động, ngoài ra cũng có những ứng dụng hỗ trợ dạy và học như Moodle, Google Classroom, … Tuy nhiên chúng đều có những vấn đề, hoặc chỉ tập trung vào giải bài tập, ít có sự tương tác giữa giảng viên và học viên, hoặc tập trung vào việc dạy và học nhưng lại không hỗ trợ hoàn toàn cho việc dạy lập trình. Do đó, để giải quyết vấn đề đó, em quyết định bắt tay vào thực hiện đề tài này.
Mục tiêu đề tài: - Xây dựng ứng dụng tạo & quản lý lớp học có sự hỗ trợ của Hệ thống hỗ trợ chấm điểm lập trình tự động. Lưu ý ứng dụng sẽ tập trung hoàn toàn vào trải nghiệm dạy và học, do đó sẽ không có tính năng quản lý sinh viên và 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ới mà không cần sửa đổi mã nguồn (mà thêm bằng cách thêm dữ liệu trong database và cài đặt compiler và runtime của ngôn ngữ mới ở trong terminal của 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 và các tài liệu trong lớp học, giải và nộp các 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ác cài đặt mà Giảng viên đã thiết lập, đồng thời quy về điểm số cho bài tập - Điểm số được tính toán tự động dựa theo các trọng số, sau đó quy về điểm trung bình môn học cho các học sinh - Thống kê điểm số của môn học - Tất cả các tài liệu & bài tập lập trình và cả bài nộp của sinh viên đều được thực hiện thông qua một trình soạn thảo văn bản giống với VSCode (Monaco Editor) - Giao diện bắt mắt, trực quan, bố cục hợp lý, dễ sử dụng 3.
Phạm vi đề tài: • Phạm vi môi trường: - Ứng dụng có thể được truy cập từ Web trên các máy tính cá nhân (PC) - Server của ứng dụng được đóng gói bằng các Container và có thể được host trên mọi thiết bị hỗ trợ Docker, kể cả là trên các nền tảng Cloud • Phạm vi chức năng: - Xác thực và quản lí thông tin cá nhân - Tạo & Quản lí môn học - Mời & tham gia môn học - Tạo & Quản lí Tài liệu của môn học (markdown, ảnh, video) - Tạo & Quản lí các bài tập lập trình - Chấm điểm tự động cho các bài nộp bài tập lập trình - Thống kê dữ liệu lớp học (điểm và điểm trung bình của các học viên) - Cho phép ứng dụng mở rộng, hỗ trợ thêm ngôn ngữ lập trình mới mà không cần sửa đổi source code (mà thông qua dữ liệu trên database) 4. Đối tượng sử dụng: - Giảng viên muốn tạo lớp học lập trình. - Học viên/Học sinh muốn tham gia và học trong một lớp học lập trình. Phương pháp thực hiện: - Tìm hiểu các công nghệ liên quan - Tìm hiểu các ứng dụng liên quan để hiểu rõ về nghiệp vụ.
- Nghiên cứu nhu cầu hiện nay trong việc dạy học lập trình - Tiến hành phân tích và thiết kế hệ thống. - Tìm hiểu UX/UI và tiến hành thiết kế giao diện cho ứng dụng. - Tiến hành triển khai và kiểm thử. Công nghệ sử dụng: - Backend: NodeJS, ExpressJS, Joi, RabbitMQ, MSSQL Driver for Node, ioi/isolate, ubuntu CLI - Frontend: React, Redux, Redux Saga, TypeScript, MUI - Testing: Jest, RTL - Database: Microsoft SQL Server - Source Control: GitHub.
- Deploy: Docker, Kubernetes, AWS - Document & Process Management: Notion - Project management: Scrum Framework 7.