基于Django的在线编程评测系统的设计与实现

发布日期:2021年9月2日
基于Django的在线编程评测系统的设计与实现 基于Django的在线编程评测系统的设计与实现

本内容试读结束

下载后可阅读完整内容,立即下载

随着信息教育和计算机技术的不断发展和进步,计算机技术实践能力越来越受到重视,而计算机技术实践能力的提高离不开大量的编程训练。为了改善程序设计类课程的教学效果,同时提高学生的编程能力,本文设计并实现了基于Django的在线评测系统。该系统采用B/S架构,使用MySQL作为后台数据库。主要实现了用户管理、题库管理、作业管理、代码评测、交流讨论等功能。该系统可以有效地应用于教学中,从而提升教师的教学效率,培养学生的学习兴趣,提高编程水平。

程序设计类课程是我国高等院校绝大多数本科生必修的一门计算机基础课程。

该课程学习人数众多, 影响面广,其教学目标是培养学生的程序设计基本技能、严密的逻辑思维方式以及实践和动手能力,其中实际的编程能力是学科培养和教学效果考查的重点。但是在教学过程中,存在着以下问题:课堂上主要以老师讲授为主,学生动手机会不多;学生上机实验时,也只是简单将老师或教材上的代码抄写到实验报告中;平时作业、实验报告以及考试试卷都是由教师进行人工判题评阅的,教师由于重复性工作量巨大,最多抽查批改部分作业。这样就导致了一方面对任课教师很难全面了解班级的学习情况,另一方面对学生来说无法及时反馈,导致学习兴趣不高,最终影响学习效果。

在线评测(Online Judge, OJ)系统[1]是一个基于B/S 的多用户在线判题系统,它允许注册用户多次在线提交源代码(如C、C#、Java、Python 等),系统自动对用户提交的代码进行编译,采用“黑盒判定”的形式使用预先设定的测试用例进行测试,通过测试的结果检测程序的正确性,最终根据用户正确的解题数和用时给出排名。传统的OJ 系统主要用于ACM 国际大学生程序设计竞赛(ACM/ICPC)的训练和比赛。

目前应用比较广泛的OJ 系统, 国内有北京大学的POJ [2]、浙江大学的ZOJ [3]、华中科技大学的HUSTOJ [4]等,国外有美国的USACO、俄罗斯乌拉尔大学的URAL、波兰格但斯克理工大学的SPOJ 等。这些OJ 系统含有丰富的题库, 拥有强大的功能以及完善的竞争体系, 但是这些系统对编程者综合素质要求高, 对于程序的评判过于严格[5] [6], 如果让刚接触编程的学生一开始就利用这些系统进行练习, 由于其自身的编程能力不强,会打击其对学习编程的积极性,不适合课程教学辅助场景。

基于此,本文借鉴OJ 系统的判题模式,并结合高校教学特点,设计了一个基于Django 的在线测评系统,学生可在网上自主进行程序设计训练时,能及时准确地发现错误反馈给学生,从而设计正确、合理、高效的程序。本系统的应用有利于降低教师的重复性工作,提升教学效率,帮助学生提高编程水平, 增强实践动手能力。

2. 需求分析 本文设计一个适用于高等院校程序设计类课程的在线测评系统,便于教师布置作业、管理教学进度、监督学生作业完成情况和实时了解学生的学习状况等。系统主要划分为教师和学生两个角色:



相关标签