易考编程题的阅卷方法可以分为以下几个步骤:
检查考生文件夹中的学生提交的考试程序
首先检查考生是否已经完成了该题,如果没有做过,则直接给0分,并结束阅卷过程。
规范化处理学生保存的程序
删除程序中的注释语句,合并连续多个空格为一个,并增加一个程序块,该程序块的功能是自动将程序结果输出到指定文件。这样,只要学生程序有输出结果,就能自动输出到文件。
编译和运行程序
使用`tcc`命令对考生程序进行编译处理,如果能够生成可执行文件,表示程序没有语法错误,语法部分得满分。接着运行可执行文件,如果没有生成结果文件,则结果部分计为0分。
结果对比和静态评阅
通过动态评阅、结果对比和静态评阅相结合的方法,将试题的总分数分解为结果分、语法分和词法分三个部分。每部分单独评分,最后累加各部分分数之和得出总分。
使用系统依赖图和正则表达式进行评分
学者们寻找一种程序的中间表示形式,如系统依赖图,来表示程序的标准答案。将考生的代码也通过同样的方法进行转换,最后对它们进行匹配,根据匹配的程度来评分。
功能测试和知识要点分析
对于可编译运行的程序片段,运用功能测试模块对其进行测试,通过比对测试结果和标准答案进行评分。对于不能编译运行的程序片段,运用知识要点评分模块对程序进行分析和分块,将程序拆分成若干独立的知识要点粒子,并利用正则表达式对其进行描述,通过与答案库中程序片段比对,完成评分工作。
通过这些步骤,可以实现对编程题的自动阅卷,确保评分的科学性和公正性。