代码自动实时评判

教学常用的编程语言

支持C、C++、Java、Python、C#、Go、Matlab、Scala等高级语言程序的自动评分。

支持x86汇编语言的自动评测。

不仅仅告知正确与否

程序自动评判方面不仅仅告知正确与否,更侧重对程序的全面分析,包括性能分析、代码风格检查、静态分析、错误原因分析等,帮助和引导学生写出高质量的程序。

各种输入输出方式

支持三类输入方式(标准、文件、命令行参数)与两类输出方式(标准、文件)的任意组合。

丰富的编程题型

支持接口编程、程序片段、完整代码、大数据处理四类编程题型,从多角度考核编程与算法设计能力。

支持输出结果的模糊比对

输出结果中的大小写、空格等不可见字符不影响评测正确性,可以利用通配符描述输出结果。

支持基于LCS(最长公共子串)的“部分正确”得分规则。

真正的实时评判

利用CPU多核并行评判提交代码,无须排队评测,实时给出评判结果。

智能化的代码查重

可检测出修改注释、重新排版、标识符重命名、代码块重排序、代码块内语句重排序、 常量替换、改变表达式中的操作符或者操作数顺序、改变数据类型、增加冗余的语句或者变量、表达式拆分、控制结构等价替换,共12种学生用到的抄袭手段,是目前精准的相似性检测算法之一。

内存错误检测与分析

引入Valgrind检测提交程序的内存错误,协助学生调试程序。 引导学生从软件工程的角度编写出更健壮的代码。

实践与工程能力培养

支持多源文件(工程项目)自动编译与评测,保留真实工程环境的源代码组织风格。

复杂问题的源文件组织也是一种工程训练。特别是Java代码,一般一个类对应一个文件,若使用文本框提交就要破坏Java的编程规范。

高质量的题库

北京航空航天大学计算机学院历经10余年沉淀下来的高质量题库,面向工程应用实际问题,覆盖所有知识点和难易度,并附带代码样例。

系统自动挖掘度量学生代提交的代码(代码行、提交次数、圈复杂度、函数数量等指标),帮助教师量化分析教学效果。