C语言上机考试系统中自动评分方法的探
讨
作者:王颖来源:《当代教育理论与实践》2014年第1期
王颖
(湖南科技大学计算机科学与工程学院,湖南湘潭411201)
摘要:利用计算机考核学生的C语言编程实践能力,实现编程题的自动评分,已成为计算机辅助教学的一个热点。依据程序设计题特点,总结了目前能应用于实践的几种C语言编程题的自动评分方法,并对这几种自动评分方法进行了探讨与分析。
关键词:C语言;自动评分;辅助教学
中图分类号:TP31
文献标志码:A
014)01-0149-02
文章编号:1674-5884(2
目前,计算机C语言已作为各类高校计算机专业甚至其他相关专业的必修课程。由于学习该课程的学生人数多,为了提高教学效率,避免手工阅卷时出现的费时且易出错等问题,必须采用能确保公正、客观的计算机自动评分系统。目前,国内在C语言的上机考试系统中选择题和填空题的自动阅卷技术已经很成熟,而对用于评价实践能力的C语言编程题,计算机自动评分技术还一直处于发展与完善中。自20世纪60年代开始,国内外许多学者致力于研究程序设计题计算机自动评分方法。发展至今,目前较完善的C语言编程题自动评分技术已可总结为好几种。
1基于程序理解的编程题自动评分方法
程序理解是通过分析程序,对程序进行抽象、推理来获取知识。该方法将人工阅卷的某种思维过程和程序理解的几个基本策略进行结合,通过比较模板程序与学生程序,并给学生程序进行评分[1]。其评分过程如下[2]:
(1)首先将程序代码转换成系统依赖图(SDG)这种中间表示形式;
(2)采用标准化处理方法转换SDG,消除程序实现形式的多样化;
(3)通过匹配学生程序和模板程序给学生程序评分从程序的规模、结构、深度等几个方面着手。根据文献[1]中给出的实验结果数据可知,这种自动评分方法符合人工阅卷的思维过程,总体上优于人工评分,且能应用于实际需要,只需提供模板程序即可,不过这种方法对模板程序要求较高。
2基于语义相似度的编程题自动评分模型
文献[3]提出的基于语义相似度比较的编程题自动评分模型对程序的一些标准化规则如布尔运算和算术运算进行了改进和完善,在原有模型上采用函数调用和数组分析等一些改进方法,根据语义相似度匹配学生程序与模板程序。该模型主要依据如下几点进行自动评分[4]:
(1)首先定义好相应的模板程序,以此为标准来判断学生程序是否正确;
f(r