摘要:目前,计算机编程类课程教学存在许多问题,比如程序实践教学环节薄弱、作业考察方式不合理、抄袭现象存在等。针对存在的问题,提出了基于在线On-lineJudge学习测评系统的计算机类编程课程教学实践手段优化改革思路,以满足该类课程实践性强的需要,以增强学生学习能力和使用计算机编程解决实际应用问题的能力。该教学改革手段在最近几届学生上应用实践后取得了良好的教学效果,证明其能有效培养学生的程序实践应用能力。该实践手段既可以为程序设计类课程提供在线实验平台,还可以为蓝桥杯、ACM程序设计竞赛以及编程类科技竞赛等大赛提高平台服务。
关键词:OnlineJudge;教学改革;计算机编程课程
一、引言
随着计算机和互联网技术的发展,网络在线教育与计算机辅助教学引发了一场深刻的教育模式和教育观念的变革,一方面计算机技术减轻了教育者的工作量,提供了更丰富的教育表现形式,并可在教育资源和教育对象之间建立联系;另一方面互联网技术使得更为广泛的群体可以远程接受到更高质量的教育。另外,近期中国国务院印发了《新一代人工智能发展规划》,《规划》中指出中国到2030年人工智能理论、技术与应用总体达到世界领先水平。人工智能中最重要的部分就是程序设计。在高校计算机相关专业的教学活动中,编程课程有利于培养学生的创新思维和逻辑思维,增强学生的信息素养。目前,计算机及其相关专业需要学习几门计算机语言专业基础课程,比如C语言程序设计、C++程序设计、JAVA程序设计等,传统教学方式为大量理论学时与少量实践学时相结合,学生通过理论教学学习计算机语言相关的基础知识,在实践学时阶段开展上机验证与扩展学习,具有较好的教学效果,但是也存在以下几个问题。(1)课后作业一般为教材的习题,数量较少而且扩展性不强,教师一般选取一部分代表性的习题作为课后作业,不能照顾到各个知识点。(2)学生所交作业一般为纸质稿,教师审阅时工作量非常大。以一个小型工程为例,代码可能为几百甚至几千行,而一个教学班人数少则几十人,多则上百人。全部检查学生上交的代码,可操作性太差,因而,教师一般采用抽查其中部分关键代码段,相应地实际的检查效果也大打折扣。(3)由于过程监控力度不够,抄袭现象严重。(4)传统的纸质作业方式不能有效激发学生学习的积极性,简单的评分依据难以对学生学习情况作出客观评价,相反,它在一定程度上还挫伤学生的学习积极性。针对上述问题,有人提出将目前软件工程中的自动测试的方法引入到计算机语言课程教学中来,学生的课后作业不再采用传统的纸质方式,而是采用在网上系统来完成,让系统对学生提交的代码进行自动评判,从而减轻任课教师的工作量,最大限度降低学生抄袭行为,同时提高教师对学生学习过程的监控力度,并使评分更为客观,进而提高整个理论与实践教学的质量。目前有很多比较流行的OnlineJudge(OJ)系统,比如北京大学的POJ在线程序测试系统,杭州电子科技大学的HDUOnlineJudgeSystem,还有些比较优秀的开源OJ系统可以利用,从而实现对课程设计中的代码进行在线自动评判的方法。实践表明,该方法实现较为简单,且效果良好。
二、OnlineJudge简介
ACM/ICPC国际大学生程序设计竞赛是由ACM(AssociationforComputingMachiner-y,美国计算机协会)组织的年度性竞赛,国内高校从1996年开始参加ACM/ICPC亚洲预赛。为了利用计算机技术与网络技术在线开展程序设计竞赛,OnlineJudge系统(简称OJ)被研发出来,它是一个利用web技术开发的在线判题系统。注册的用户可以利用Web浏览器在线提交程序多种计算机语言的源程序(如C、Java、C++、Pascal等),OJ系统自动对提交的源代码进行编译和执行,产生执行文件,并利用预先设计的大量测试数据来检验程序所得到结果的正确性,最终判断用户提交源代码的可用性。基于这样的背景,很多大学开发了自己的OnlineJudge系统,任课教师可以在平台后台添加自定义的题目,进行上机实践考试,举办程序设计比赛,学生提交的程序可以实时得到评测,返回测评结果。利用该技术,既能鼓励学生提高动手能力,又极大地方便了教师的教学工作。
三、实践教学手段优化
利用OnlineJudge开展计算机编程课程实践教学手段优化,采用了如下的步骤:(1)利用OnlineJudge程序测评平台,任课教师先设置问题题库,每道题都针对着编程应用中的一个实际知识点。除此之外,还需结合西南科技大学国防学院信息对抗技术专业本科生的培养目标,在设计问题时,可以围绕国防军工背景,这不仅可以增强问题的生动性,还能增强学生对该专业的学习兴趣。(2)任课教师从题库中抽取部分题目作为作业、考试或者比赛实践。比如在理论课教学结束后,任课教师告知学生需要在OJ中完成题目,并提醒学生注意截止提交时间,如图1所示为某次比赛时的题目。(3)学生通过账号登陆测评平台查看问题集,针对问题,在PC机上进行编程调试,调试通过的程序源代码通过平台提交到服务器进行测评,如果代码正确则返回Accept,错误则返回WrongAnswer,有语法错误则提示PresentationError,并同时返回学生提交源代码编译后程序使用的内存、运行时间等程序评价数据信息。如图2所示为OJ实时返回的学生答题状态信息。(4)教师登录到平台后台可以导出学生完成情况的统计信息,包括完成率、正确率、重合率等信息。
四、效果验证
从2014级开始,利用任教的《C语言程序设计》开展实验工作,共两个教学班(A班和B班),A班和B班人数相差不大,对A班采取以OnlineJudge的计算机课程教学手段优化,对B班则按照传统的教学方法开展教学实践。为了区分使用和未使用Online-Judge实践教学效果,实验将学生的成绩分成五个等级,分别是<60分、60-69分、70-79分、80-89分、90分及以上。实验结果如下所示。针对2014级《C语言程序设计》教学班,使用OnlineJudge的效果如图3所示,使用OJ的A班平均成绩、及格率、优良率都好于未使用OJ的B班。图32014级学生C语言成绩分布统计针对2015级《C语言程序设计》教学班,使用OnlineJudge的效果如图4所示,使用OJ的A班平均成绩、及格率、优良率也均好于未使用OJ的B班。针对2016级《C语言程序设计》教学班,使用OnlineJudge的效果如图5所示,两个班级均适用使用OnlineJudge课程教学手段优化,可以得到两个班的成绩分布曲线与趋势大致相同。图42015级学生C语言成绩分布统计图52016级学生C语言成绩分布统计通过实验表明,利用OnlineJudge的计算机课程教学手段优化的教学班级各项指标都优于未使用的班级,充分证明了该系统对教学效果具有显著提升作用。
五、计算机课程教学手段优化总结
针对目前计算机课程教学实践中存在的问题,基于OnlineJudge开展教学手段优化,以高质量、高成效完成计算机语言相关教学实践。一方面极大地释放了教师的作业批改与统计整理负担;另外一方面提升了学生学习兴趣,对学生培养编程兴趣、学习计算机语言、掌握编程实践技能,具有重要的意义。实践表明,在教学实践中引入OnlineJudge优化手段后,学生的学习主动性得到大幅提升,课程教学质量也得到较大改善。
参考文献
[1]陈荟慧,熊杨帆,蒋滔滔,等.基于在线测评系统的编程题目难度研究[J].现代计算机(专业版),2018,(13):26-30+34.
[2]黄金春,杜娟娇.超小型在线评测系统的设计与实现[J].现代计算机(专业版),2018,(13):83-86.
[3]肖红玉,蓝荣祺,万志强.在线评测教学辅助系统设计与应用[J].电子设计工程,2017,(23):11-15.
[4]晏燕.在线编程评测系统设计与实现[D].长春:吉林大学,2017.
[5]肖红玉,贺辉,陈红顺.在线评测教学辅助系统设计[J].计算机技术与发展,2017,(11):141-145.
[6]吴舜歆,梁宝兰.OnlineJudge在C++程序设计课程实践教学中的应用[J].高教学刊,2016,(09):164-167.
作者:任珍文 杨超 印茂伟 吴明娜 刘洋 孙元 单位:西南科技大学国防科技学院
阅读次数:人次