国际大学生程序设计竞赛(ICPC:International Collegiate Programming Contest)是由美国计算机协会(ACM:Association for Computing Machinery)主办的年度竞赛。每队使用1台电脑需要在5个小时内使用C/C++、Java和Python中的一种语言编写程序解决7到13个问题。程序完成之后提交评测机运行,运行的结果会判定为正确或错误两种并及时通知参赛队。具体结果如下:
1、Accepted. ——通过!(AC)
(相关资料图)
2、Wrong Answer.——答案错误。(WA)
3、Runtime Error.——程序运行出错,意外终止等。(RE)
4、Time Limit Exceeded. ——超时(超出时间限制)。程序没在规定时间内出答案。(TLE)
5、Presentation Error. ——格式错误。程序没按规定的格式输出答案。(PE)
6、Memory Limit Exceeded. ——超内存(超出内存限制)。程序没在规定空间内出答案。(MLE)
7、Compile Error. ——编译错误。程序无法编译。(CE)
注:竞赛类具有选拔性,不适合基础教学使用。
希冀平台
基于动态测试的评分,由教师给出程序的多组测试数据和期望输出。评分过程是运行学生程序然后判定输出结果与期望输出的匹配情况评判分数。
(1)程序编写正确,能够得到正确的运行结果。采用黑盒测试法,希冀平台自动完成,所有测试数据输出结果完全正确,评分为满分。
(2)程序通过编译、链接,能够运行,但是只能得到部分正确的结果。采用人工复核算法思路,检查逻辑错误,根据程序的完成情况评分。保证在程序运行结果有误但基本思路正确的情况下也可以得到合理的分数。
(3)程序不能运行,也不能得到运行结果。采用人工复核关键点匹配方式评分,保证在学生程序有语法错误、不能正常运行的情况下也能得到合理的分数。
关键点为题目涉及的知识点:如输入、输出、运算符、选择、循环等要求的得分点,根据是否包含关键点、包含关键点个数及正确完成程度,结合程序语法错误和逻辑错误情况评分。
一道编程题人工复核评分参考,以满分10分为例。
没有采用要求的课程编程语言提交程序代码,如Python课程题目提交C语言程序,零分。
程序能运行:
所有测试数据输出结果完全正确,评分为满分。
部分测试数据输出结果完全正确,按程序逻辑思路并结合正确结果所占比例给分。
采用直接输出期望结果的不合理方式,零分。
程序不能运行的:
只是大小写、标点符号、关键字等类似简单语法问题、且问题仅限一处,修改这一处后就可以正确运行,9分;
包含题目涉及关键点,根据关键点个数、正确完成程度及逻辑思路等按比例给分;
语法错误较多,存在最基本的语法错误问题,显示出不具备最基础的编程技能,根据关键点完成情况,酌情给1-2分。
附:希冀官网介绍
1、代码自动实时评判
教学常用的编程语言
支持C、C++、Java、Python、C#、Go、Matlab、Scala等高级语言程序的自动评分。
支持x86汇编语言的自动评测。
不仅仅告知正确与否
程序自动评判方面不仅仅告知正确与否,更侧重对程序的全面分析,包括性能分析、代码风格检查、静态分析、错误原因分析等,帮助和引导学生写出高质量的程序。
各种输入输出方式
支持三类输入方式(标准、文件、命令行参数)与两类输出方式(标准、文件)的任意组合。
丰富的编程题型
支持接口编程、程序片段、完整代码、大数据处理四类编程题型,从多角度考核编程与算法设计能力。
支持输出结果的模糊比对
输出结果中的大小写、空格等不可见字符不影响评测正确性,可以利用通配符描述输出结果。
支持基于LCS(最长公共子串)的“部分正确”得分规则。
真正的实时评判
利用CPU多核并行评判提交代码,无须排队评测,实时给出评判结果。
2、智能化的代码查重
可检测出修改注释、重新排版、标识符重命名、代码块重排序、代码块内语句重排序、常量替换、改变表达式中的操作符或者操作数顺序、改变数据类型、增加冗余的语句或者变量、表达式拆分、控制结构等价替换,共12种可能用到的抄袭手段,是目前精准的相似性检测算法之一。
[责任编辑:linlin]
标签: