与同类系统的区别

      CourseGrading在北京航空航天大学计算机学院已经历经10余年的持续研发,最初的设计目标主要是支持程序设计课程的平时作业、考试和答疑,减轻教师的工作量,并提升实践教学质量;后来引入了大数据性能评测和代码性能度量、数据结构与算法可视化等功能,提供对数据结构与算法课程的直接支持;为了配合并行程序设计课程,我们又研发了多核与MPI并行程序自动评测功能。

     关于程序设计在线测评系统的开发与应用,国内多所高校都进行了深入研发,目前同CourseGrading相类似的平台中较知名的如:北大百炼、浙大ZOJ、清华清橙等,但这些都是基于围绕ACM竞赛系统(OJ)的延伸开发,主要是面向竞赛选手的,强化和拓展知识点的工具,并不能对数据结构和算法这类需要关注时间复杂度的课程提供直接的支持,与CourseGrading存在本质的区别,功能比较见下表。   

技术指标

CourseGrading

同类系统

串行程序自动评判

并行程序自动评判

✔(针对CPU多核多线程并行程序和集群架构的MPI并行程序,能够自动从正确性、性能和可扩展性三个方面进行评测)

✘ 

评判实时性

✔(利用多核并行技术,实时给出评判结果)

✘(串行排队评判,评判延迟很大,不适合学生集中上机)

多源文件代码评判

✔(可以评测项目级多源文件程序)

✘(只能文本框提交简单代码)

源代码分析

✔(应用软件工程理论,对代码进行代码风格检查、性能分析、静态分析、错误原因分析)

✘(仅仅关注正确性)

大数据评判

✔(支持大数据的上传与评判、支持性能作为评分标准)

✘(仅仅支持小测试数据)

编程题目类型

✔(除了常见的类似ACM竞赛类型的编程题目,支持接口编程题、程序片段编程题)

✘(仅支持完整代码的评判)

输出结果的模糊比对

✔(支持基于通配符的模糊比对)

✘(必须严格按照格式输出)

数据结构与算法可视化

✔(以可视化的形式动态展示算法的执行过程,使学生更容易理解算法思想)

代码相似性检测

✔(可检测出修改注释、重新排版、标识符重命名、代码块重排序、代码块内语句重排序、 常量替换、改变表达式中的操作符或者操作数顺序、改变数据类型、增加冗余的语句或者变量、表达式拆分、控制结构等价替换等经过深度修改的代码)

✘(一般是基于文本相似性检测方法,无法检测出增加冗余代码、控制结构替换等经过深度修改的代码)

文档相似性检测

✔(能够检测出经过同义词替换调整语句或段落顺序删除部分段落、更换标题等手段深度修改过的文档)

✘ 

课程管理

✔(具备完善的课程管理功能,支持各类题型(填空、选择、判断、文件上传、简答、编程等)、在线作业、在线考试、在线答疑、成绩分析统计等基本的课程管理功能,并将程序自动评判与课程管理完美结合,构建了一个自动化的程序设计交互学习环境)

✘ 

在线考试

✔(支持自动组卷;支持单场考试多套试卷,并根据客户端IP或者学号自动分发试卷; 考试期间,能够穿透代理实时监测学生交换账互相抄袭;考试结束后,能够利用代码相似性检测功能,对提交代码进行相似性检查)

✘ (性能、可靠性与监控功能无法真正满足考试的苛刻要求)

题目类型

✔(支持接口编程、程序片段、填空、选择、判断、文件上传题、算法可视化、项目题)

✘ (仅仅支持填空、选择与编程题)

自动出题

✔(支持按照知识点、章节、难易度、使用频度等规则,自动抽题组卷)

大数据分析与度量

✔(自动度量题目的正确率、代码行(编程题)、平均完成时间等指标,帮助教师客观量化题目难度与特征;自动挖掘系统积累的历史数据,使系统更加智能)

性能、稳定性与安全性

✔(单台服务器支持1万人同时在线;沙箱技术隔离程序执行;可靠性经过北航、国防科大、北工大等高校10余年的使用验证)

✘ (同时在线人数过多将会导致系统崩溃)

用户体验

✔(简洁优雅可定制的界面风格,教学全过程的支持)

✘ (界面简陋,操作繁琐)

 

Last modified on 2017-05-13 by zch