基于Online Judge的C语言程序设计实验课教

2016-05-14 20:37廖雪花厉兰洁唐思娩
计算机教育 2016年6期
关键词:C语言实验课教学改革

廖雪花 厉兰洁 唐思娩

摘要:C语言程序设计实验课是学生练习和巩固C语言知识、加强实践动手能力锻炼的机会,针对在实际教学中无法兼顾每位学生的问题,阐述Online Judge系统如何更好地实现智能评阅,促进实验课更高效地进行。

关键词:Online Judge;C语言;实验课;教学改革

C语言程序设计是高校计算机相关专业的必修基础课程,也是学生程序设计类的入门课程。C语言的掌握程度对学生后续计算机类专业课程的学习有很大的作用和影响。在实际教学过程中,实验课是学生独立学习C语言进行实地编程的机会,实验课的上机实验,可帮助学生消化和巩固课堂所学知识,也可帮助学生解决学习中的疑难问题,更重要的是可激发和提高学生学习C程序设计的兴趣。因此,实验课如何更高效率地帮助学生学习是非常关键且必要的。在未进行改革探究之前,实验课就是学生自主地完成实验报告,完成后一并上交老师批改。对于学生而言,做得对错与否都无法第一时间得到反馈;对于教师而言,一个班级的批改量也极为巨大,需要耗费不少时间,也无法针对每位同学做出反馈。这些无疑对C语言的学习和教学的推进工作造成了一定的阻碍。

为此,在运用SPOC平台改进C语言程序设计课程教学的同时充分利用平台中的OnlineJudge智能评阅功能,能让实验课发挥更大的效用。

1C语言程序设计实验课的教学现状

一直以来,实验课就是学生独立完成相应实验报告的课时,这一期间有任课教师和带机老师进行辅导及检查工作。在实验课上,教师们几乎不停歇,因为解决一个程序问题需要对学生进行多方面的引导,再加上检查学生的实验报告成果也并非仅检查程序的运行结果,还需要考察学生是否真正掌握了这个知识点。虽然每次实验课上老师们已尽心竭力,但还是无法照顾到每位学生,依旧有学生的问题未得到辅导或解决。与学生的交流中,学生也反映这在一定程度上影响了他们对C语言程序设计的积极性。因此,急需一种方法帮助解决实验课上的这一问题。

2C语言程序设计实验课的改革探究

2.1Online Judge简介

Online Judge在线测评系统(简称OJ系统)是一个基于B/S结构的在线程序与算法设计练习、考试平台,能对学生用网页浏览器提交到服务器的习题、作业等程序源代码进行在线编译,生成可执行文件,并从数据库中调用测试数据,从程序运行的正确性、耗时、耗费内存及返回结果等各方面评测代码,并精确反馈各方面的评测结果。在面向程序设计类课程的教学辅助方面,以PKU ACM Judge Online为代表的Online Judge系统能够对用户提交的程序进行“黑盒判定”来自动生成判题结果。

2.2Online Judge在实验课中的应用

笔者在中国大学MOOC网站上开设了一门C语言程序设计课程的异步SPOC课程,平台上的“测试与作业”板块为实验课的开展提供了极大的便利,该板块可以在课程后台管理页面中自由添加单元作业及作业题,作业题的录入包括以下6个部分:选择本题编程语言、题目录入并设定题目分值、程序是否需输入、题目内容录入、题目测试用例录入、程序限制设置,如图1~6所示。

为此,提前将实验报告中的试题在平台上进行录入并设置分值及测试用例,待作业题成功发布之后,学生通过在相应文本框中录入C语言程序代码,提交后OJ系统便会自动开始检测。OJ系统主要通过学生提交的代码能否顺利通过之前设置的用例来判断答案的正确与否。

实验课上,学生们在机房通过平台上的OJ系统来智能评阅自己的代码是否正确,以不断进行修正,测试不通过的用例,会在页面上提示代码可能存在的某一方面的问题,提醒学生认真考虑编程时是否忽略了这一方面。OJ系统的智能评阅功能为教师和学生提供了极大的便利,极大解决了教师无法兼顾每位学生的局面。在实行为期一个学期的教学改革之后,学生对此次应用OJ系统来测评作业、习题,以及阶段考试的改革颇为满意,对编程有了浓厚的兴趣,对所学课程知识也有了很好的理解和掌握。

2.3Online Judge在应用中的注意事项

Online Judge在线测评系统在C语言程序设计实验课中发挥了很大的作用,节省了教师检查学生作业的时间,促进了学生更加自主地学习,增加了学生学习的兴趣,提高了学生实践动手能力。但要使OJ系统更好地发挥效用,教师需要注意以下两个方面:

(1)OJ系统需要教师对题目进行正确描述和引导。题目内容录入包括题目录入、输入格式、输出格式、输入样例、输出样例五个部分,每部分都至关重要,若描述不准确,误导了学生对题目内容的理解,就会导致学生的代码无法通过OJ系统的测试。对于OJ系统来说也是一样,用例中的格式是逗号就必须写逗号,否则测试就不通过。若题目中未明确表明,学生则会非常疑惑,屡试屡败便会非常懊恼。因此,教师必须对题目进行正确描述和引导。

(2)教师需要对测试用例考虑充分。测试用例的对错会影响OJ系统对学生提交代码的评判。如除法中除数不能为0,若输入为0,需要输出如“0不能作除数”之类的提示语。又如负数的考虑,有些学生在编程代码中会忽略,默认输入只能为正数,那么教师在设置测试用例及分值时就要体现出来,以引导学生全面考虑题目的用意。

OJ系统对教师提出了更高的要求,需要教师认真负责全面地进行准备。

3结语

在C语言程序设计实验课中应用OnlineJudge系统,对教学效果的提升起了非常重要的作用,由此可见实现智能评阅对计算机程序设计类课程的重要性。笔者也积极地在OJ系统的基础上开发一套更智能的评阅系统,以促进程序设计类课程的改革,使学生更喜欢这类课程,更好地培养学生的编程能力和实践能力。

猜你喜欢
C语言实验课教学改革
“C语言程序设计”课程混合教学探索
有趣的实验
魔术师的考验
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
导学案在化学实验课中的应用
计算机原理中C语言的应用价值
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究