摘要:程序语言设计类课程的特点是具有较强的实践性,所以对其进行考核评价使尤为重视对学生实际编程能力的考察。在传统的院校机试中通常需要人工评判,在很大程度上就无法保障成绩测评的公正性,而且对抄袭的判别较为困难。因此本文通过阐述程序语言设计类课程考核方案评价方法改革的重要性,并分析其改革思路,最后探讨其实践过程,以期为相关院校的程序语言设计类课程考核方案评价方法的改革和实践提供借鉴和参考。
关键词:程序语言;考核方案;评价方法;改革与实践
前言
程序语言设计类课程与其他的基础性理论课程有很大的不同,最主要是其具有非常强的实践性,主要的教学目标即是为了培养学生的实际编程能力。以重庆安全技术职业学院为例,当前已经将机试纳入到该门类的考试评价方式中,即是规定学生在指定时间内完成程序语言设计提交,任课教师进行课后审查和评定,这种方式比较耗费人力,所以继续相应的改革,完善考核方案以及评价方法。
1 程序语言设计类课程考核方案评价方法改革的重要性
在程序语言设计类课程的教学当中可能存在一个非常严重的现象,即是互相抄袭程序代码,在重庆安全技术职业学院的程序语言设计类专业中也存在较为普遍的现状,这对于该校学生个人素质的提高以及教学秩序产生了极大的影响。教师耗费了大量的时间和精力来对常规考试中存在的雷同程序进行反复审核,增加了教师评价的工作量,而且评判相对比较主观。因此针对程序语言设计类课程,该校必须要对原有的考核方案评价方法进行改革和优化,从而能够考查学生的实际编程能力,督促学生积极展开学习,进一步提高学生的学习质量[1]。
2 程序语言设计类课程考核方案评价方法的改革思路
2.1 在线评测
程序语言设计类课程的在线评测是一种具有用户注册管理、题库管理、在线提交以及实时测评、网上考试、讨论等工程的服务器端软件系统。比如在重庆安全技术职业学院中的在线测评中具有丰富的题库,其中包括有国际大学生程序设计比赛等公布的所有试题以及本校师生自创的测评题目,每一道评测题目都包含有文字描述以及输入数据文件和标准答案的输出数据文件,学生在线只能够看到文字描述部分。正确的程序是根据数据输入,在规定时间内计算出标准的输出数据。即是学生根据文字题目选择适当的编程语言进行源程序编写,完成后递交到服务器中。最后服务器可以通过编译器对学生的源程序生成并执行,再以输入数据文件作为输入启动可执行程序,与标准答案进行对比。如果完全一致则为正确。在重庆安全技术职业学院中可以实现现场集中上机考试,能够比较便利的反映学生的实际水平[2]。
2.2 检测抄袭
由于重庆安全技术职业学院程序语言设计类课程教学中存在的程序抄袭比较严重,因此对该课程的考核方案评价方法进行改革思路分析时,要重点优化抄袭检测。而由于抄袭一般是将程序进行少量的常规修改,比如通过逐字逐句的拷贝、更改注释、增加空行、改变书写格式或者是对标识符重新命名、代码段重新排序等方式。检测抄袭即是检查学生设计编写的程序是否是对另外一个程序修改而来的。主要的检测原理是借助程序代码的相似性,对程序集合中的每两个程序进行对比,并找到修改代码的相似部分,从而能够得到程序形似程度的量化值,即是程序相似度。可以帮助评测人员对抄袭程序以及抄袭作业对象进行准确判定。
不过在重庆安全技术职业学院程序语言设计类课程考核中,判定学生抄袭是一件非常严肃的问题,仅仅通过系统检测对比相似度则不能下定结论,因此在改革中需要充分考虑以下四个阶段。
其一是收集阶段,即是要对检测抄袭的作业或者测验进行收集,通常是放在同一文件夹等待检测;其二是分析阶段,主要是利用代码相似性检测系统进行自动检测,教师将收集的作业程序提交给检测系统,其能够对相似程序进行标注;其三是确认阶段,教师可以根据检测系统的结果进行分析和对比,查看被检测出的程序代码是否有明显的修改嫌疑;其四是调查阶段,教师针对检测系统结果中相似度较高的程序编写者进行了解和调查,比如询问学生关于该道程序设计作业的解题思路或者过程,从而辅助判断,促使抄袭检测结果的判定真实客观[3]。
3程序语言设计类课程考核评价方法的实践研究
3.1 在线测评实践
重庆安全技术职业学院程序语言设计类课程考核评价方法的在线测评实践过程,主要是通过在线判题系统,学生可以通过在线的方式提交程序源代码,然后系统根据源代码进行编译和执行。同时可以借助预先设计的测试数据来对程序源代码的正确性进行检验。并且用户提交的程序会在判题系统下执行会受到比较严格的时间限制、内存使用限制和安全限制等。最后学生的程序会被在线判题系统捕捉和保存,并交由裁判程序,判别学生程序的输出数据和标准输出样例的对比。反馈给用户通过、错误、超时、超内存或者运行错误、无法编译等信息。同时在实践过程中可以发现在线评测系统与人工评测相比具有可靠性和先进性的特点。可以完全适应无纸化考试的要求,也能够比较客观的反映出学生的真实编程水平,可以在全校的程序语言设计类课程中推广实践。
3.2 抄袭检测实践
源代码程序抄袭检测系统能够通过对两对程序的形似情况进行量化,得到相似度。而在考核评价中相似度越高则说明抄袭嫌疑越大,不过并不能完全认定程序存在抄袭。因此要借助收集、分析、确认和调查四个方面对程序编程是否抄袭进行判定。在这一过程中由于涉及到学生的名誉和成绩问题,必须要坚持严谨的态度。首先在收集实践中,可以将在线测评的学生程序放置在同一文件夹内,等待检测系统的检测,不能出现程序遗漏或者是错误检测的现象,以便于能够找到存在抄袭嫌疑的作业对象;其次是在分析实践中,将收集好的学生程序提交给在线检测系统进行自动检测,一般情况下会以网页的形式反馈给用户,包括相似度和相似程序信息等。教师可以根据相似度来划分重点抄袭嫌疑对象,然后进行人工检查,进一步缩小核查嫌疑范围;确认实践过程,该校在程序语言设计类课程的考核中其被检测的作业代码长度在50行内,所以人工检测的相似度阈值可以设置为100%,通过程序的相似代码区域可以查看相似代码,并采用同一颜色标注以便于核查抄袭;调查实践主要是教师分析和初步确定抄袭嫌疑作业对象,对学生进行调查判定。在重庆安全技术职业学院中主要采取的方式为单独询问,要求被怀疑作业对象阐述解题过程以及解题思路,从而判断学生作业和考试是否经过抄袭而完成的。
结束语
综上所述,在计算机技术以及程序理解领域发展的背景下,在高校程序语言设计类课程考核评价中可以采取计算机考核,既能够适应课程的实践性,又能够改善传统笔试中存在的弊端。同时也能够有效的解决程序抄袭等问题。从而在利用在线评测与抄袭检测形结合的评价方法中可以真实的考查学生的编程水平,督促学生加强自身学习、树立良好的个人素质,有利于培养新时代的优秀网络人才。
参考文献
[1]刘满君.《C语言程序设计》课程考核方式改革初探[J].福建电脑,2018,34(11):181.
[2]隋雪莉,耿茜.独立学院《C语言程序设计》课程考核改革的研究与实践[J].软件,2017,38(12):309-311.
[3]马瑞民,刘华蓥,时贵英.高级语言程序设计类课程考核方案的选取与利弊[J].科技创新导报,2017,14(28):220-222.