1. 研究目的与意义
随着计算机的逐渐普及,程序设计能力正日益成为各专业学生的必备技能之一。程序设计能力的提高需要大量的编程练习,大量难度适宜的题目和及时的信息反馈是必不可少的。在国内各高校中,传统上都是以手工方式对源代码进行评测的。手工评测方式的弊端是显而易见的,如耗时耗力,使得教师无法投入更多精力到教学和科研工作中;评测结果无法及时反馈给学生,且评测结果可靠性较差;评测结果往往包含较多的主观因素等等。这些弊端的存在迫切要求开发出一套能够对源代码进行自动评测的系统,以在程序设计类课程的辅助教学中发挥重大作用,计算机技术的高速发展和互联网的日益普及使得这种可能成为现实。源代码在线评测系统原是为适应竞赛的要求而开发的,随着教学改革的逐渐深入,该系统也逐渐从面向竞赛向面向教学转化。
本课题拟完成源代码在线评测系统的设计与实现,以解决手工测评费时费力的问题。该系统将带来如下好处:1、节约手工测评源代码的时间成本。2、节约手工测评源代码的人工成本。3、使测评结果更加公平公正,减少人工干预,提升测评效率。
2. 课题关键问题和重难点
源代码在线测评系统分为二个大模块:基于深度学习的考试相关流程设计题库和试卷、基于深度学习Java在线运行相关知识系统进行后端和前端实现。本课题拟完成基于深度多个考试系统后台的设计与实现。
本课题的关键:
3. 国内外研究现状(文献综述)
在线评测系统起源于ACM-ICPC国际大学生程序设计竞赛,随后OI信息学奥林匹克竞赛中也开始使用,主要负责自动判题和排名等功能。现在世界各地的高校大学生都在使用在线评测系统进行各种程序设计的训练、比赛队员的集训等,现如今,在各类程序设计竞赛中,也在采用在线评测系统进行自动判题和比赛排名。
国内外对于在线评测系统的开发都相对完善,每个系统都有自己的特色,都能给编程人员提供一个很好的练习平台,但是国内的在线评测系统对后台维护的重视程度不够,导致现有的在线评测系统没有一个好的运维环境,主要表现在界面不友好,管理功能不够完全,对于很多操作,没有进行服务提供,都需要更改数据库完成相关功能,管理难度大。
目前,大部分在线评测系统都着眼于如何准确、高效地评判代码是否正确运行,在系统中判题子系统成为了整个系统的核心[1]。对判题子系统的研究主要集中在确保判题过程的公正可靠,确保危险代码不破坏系统,通过引入分布式评测或借助云计算环境来提高可靠性和容错能力,以及如何进行快速高效的结果比对。一些更深入的研究着力探讨如何更精确地计时,并完成更公平公正的判题流程[2],以及如何利用多核多线程的优势提升单台服务器的负载能力。同样也有一些尝试从其他方向实现并优化在线评测系统的案例,例如使用 XML 代替数据库实现持久化,并使用 XSLT 来控制表示层的呈现以减轻服务器端处理负载等[3]。而这些在线评测系统几乎都采用了经典的三层架构,加上评判内核(即判题子系统),构成#8220;表现层--业务层--评判内核--持久层(数据层)#8221;的体系结构,同时由于在线评测系统固有的瘦客户端的设计,B/S 结构成为大多数平台的首选,一些评测平台会提供自己的客户端以支持更多服务[4]。
4. 研究方案
1. 系统功能结构
系统总体功能结构如图1所示,分为服务器端和客户端,服务器端有登录、发布题目、自动阅卷、分数排行榜、用户管理、题目管理模块,客户端有注册、登录、选择题目、提交代码、查看等级功能
5. 工作计划
2022-2022-1学期:
第15-16周:完成选题,查阅相关中英文资料。
第17周:与导师沟通进行课题总体规划。
以上是毕业论文开题报告,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。