改革主观题的评判方法,使程序设计回归真实
- 格式:doc
- 大小:552.50 KB
- 文档页数:6
改革主观题的评判方法,使程序设计回归真实
程序设计中的主观题自动评判历来是一个难题,我们提出了一个全新的程序设计主观题自动评判方案,并完成了系统的设计开发。
本文则较为详细地给出了改革的主导思想、系统的功能和使用效果。
关键词:程序设计;主观题;自动评判;测试用例
1问题的提出
程序设计如同作文一样,是主观性很强的训练,哪怕是同一个题目,不同的人、不同的方法,使得程序的质量和效率都完全不同。
正是由于这一点,教师需要对每个学生的程序细节逐一评判,才能真正了解学生掌握的程度。
而面对越来越多的学生和高负荷的工作,教师要做到完全细致的人工评判和对学生的个别指导是很困难的。
所以长期以来,各种考试中的这种主观题也沿用无纸化考试的一般方式,即A、B、C、D选择题,或者挖个洞叫“填空”的填空题。
例如国外知名度较高的程序员考试,国内的全国计算机等级考试也不例外。
这对程序设计来说,无异于竞猜游戏,对学生学习程序设计,特别对培养学生编程能力带来了极大的障碍。
而这种障碍迟迟不能解决的主要原因是主观题的评判机理问题,就如同学生的作文不能让机器判分一样。
自1999年起,我们以C语言程序设计课程为龙头开始建设教学支撑平台,围绕主观编程题的评判方法进行了深入的调研和研究,于2003年建立了C语言程序设计课程网络教室和课程网站,在此基础上,引进了国外的先进系统,采用了网络技术、数据库技术、面向对象技术和分布式技术支持,完成了在全真环境下对主观编程题进行自动评测的系统开发,并先后开发了网上考试系统、辅导答疑系统及其它辅助教学软件,对教学和测评是强有力的支持,加强了对学生能力的培养,提高了教学质量。
2主观题自动评判方法
所谓自动评判,就是要让学生提交的程序经过语言处理系统的编译器进行实际编译运行,将其结果返回到课程评测系统中,其流程如图1所示。
其中的核心部分是自动测评系统,它完成的主要功能是接收源程序,在实际编译环境下按预先设置好的测试用例进行测试评判,并提交到远程环境进行相似性比对,最后将所有结果进行统计分析。
3自动评测系统的设计与实现
3.1自动评测功能设计
在技术方面,我们首先引进了被国际上许多高校采用的、开源的moodle系统作为教学辅助管理系统,该系统具有支持多种教学资源管理、方便师生交流等功能。
在此基础上,我们借鉴了ACM国际大学生程序设计竞赛中采用的程序测试方法,自行开发完成了针对C语言主观编程题进行自动测试的功能,实现了对学生提交的程序按事先设计好的测试用例逐一由系统完全自动编译并投入运行,自动进行运行结果统计分析。
图2是学生看到的题目及测试用例。
其中包括题干、教师设计的公开测试用例(程序的输入和预计的输出)、题目进程控制(开启时间、折扣时间和关闭时间)、题目分数(正常得分和折扣比例)等信息。
其中的测试用例是保证程序设计质量的有效措施,教师可以通过设计适当的测试用例全面测试学生程序,提高和锻炼学生的编程能力。
可以为每一道题设计多个公开的或保密的测试用例,例如对于题目7-3而言,不仅需要学生调试出程序的结果,而且需要通过题目设定的1个公开的测试用例和2个保密的测试用例。
系统将按照测试用例的执行情况评价程序并给出成绩。
图3是学生提交程序的界面。
提交的程序是学生在本地的开发平台自己调试通过的源程序。
通过“提交”窗口,系统在后台对学生的程序进行自动编译,对每个测试用例进行实际运行,然后将评判结果即时返回学生。
为了对学生学习过程实施有效监控,我们将美国斯坦福大学强大的实时程序比对功能嵌入到该系统中,通过相似度分析控制学生的编程质量。
图4是学生看到的测试结果。
通过自主进行的二次开发工作,成功实现了对主观编程在真实的环境下进行自动评判。
这样彻底改变了以往在静态环境下“编写”动态程序设计的局面,使学生真正得到了实际操作的训练,通过即时评价,激发了学生的兴趣。
3.2自动统计功能设计
图5界面是教师看到的每一题目学生完成的总体情况,图6是教师看到的每个学生的每个测试用例通过的情况。
通过这个系统,扩展了教学空间,强化了教学过程监控,方便了师生交流互动。
任课教师可以通过这个系统看到学生平时作业和上机练习,控制学生的学习进度,及时发现学生存在的问题。
学生的全部作业和上机答案均通过课程支撑平台提交,任课教师也可以通过课程支撑平台为每一道题目设置作业的最后提交时间,以便控制课堂教学整体进度。
同时,在教学过程中,教师通过“网络考试系统”定期公布各章小测验题目,要求学生通过网络进行自测,根据自测结果自己调整学习方法和学习进度。
教师通过学生的自测情况掌握全校学生的学习情况,分析学生学习过程中的难点。
4结束语
借助于先进的技术支撑,针对主观题的评判测评问题所研发的测评系统,解决了长久以来程序设计课程的测试评价难题。
应用这种测评方式,加强了对学生学习过程的有效管理,也为学生提供了全真的学习和评判的环境,有利于能力培养。
这套系统还有许多不完善之处,希望得到同行专家的批评指正。
参考文献:
[1] 中国高等院校计算机基础教学改革课题研究组. 中国高等院校计算机基础教学课程体系[M]. 北京:清华大学出版社,2006.
[2] 教育部高等学校计算机科学与技术教学指导委员会. 关于进一步加强高等学校计算机基础教学的意见(试行)[M]. 北京:高等教育出版社,2006.。