以机试为主、分阶段多重累加式的C程序设计课程考核体系

时间:2022-06-17 02:26:43

以机试为主、分阶段多重累加式的C程序设计课程考核体系

摘要:随着“一张考卷定成绩”逐渐淡出高校历史,如何采用累加式考试方式客观、公正地评价学生实践能力,成为当前高校教学改革的研究热点。针对这一问题,文章首先讨论累加式考试方法的核心和目标、目前累加式考试中存在的难点和误区以及程序设计课程考试中普遍存在的问题,然后提出建立一套以机试自动评分和实践能力考核为主的多重累加式成绩考核体系,最后介绍实践效果。

关键词:机上考试;实践能力考核;累加式考试;课程考核体系

0 引言

近年来,与教学方法改革同步进行的考试方法改革引起各高校师生的广泛关注。很多学校实行重能力、求创新的累加式考试方法,这使得个别指望教师考前画重点、突击复习的学生没有了用武之地,“一张考卷定成绩”也逐渐淡出高校,成为历史。为什么要结束“一张考卷定成绩”呢?因为其弊端不言自明。有的教师几年甚至十几年出的试卷内容没有变化,学生摸清规律后直接找到以往试卷就轻而易举地考试过关;有的学生平时不认真听课甚至逃课,考前期望教师画重点,然后自己临时突击一下,就能轻松通过考试:还有的学生为了应试,把工夫都用在死记硬背的内容上,以获得高分……诸如此类的现象,显然与能力培养的初衷背道而驰,因此必须彻底废弃“一张考卷定成绩”的做法。

考试方法改革并非孤立,我们在大力推进教学方法改革的同时,必须使得考试方法改革能够与教学方法改革同步进行,因为二者本身就是相辅相成的关系。一方面,不从根本上改革教学方法,考试方法改革就是一句空谈。从根本上改变照本宣科的灌输式教学方法,实行启发式教学方法,才能实现从注重知识目标向注重能力目标的转化,是否达到这一目标需要通过与之相配套的累加式考试方法检验。另一方面,由于在一定程度上考试方法就是学生学习的“指挥棒”,因此实行累加式的考试方法可以促进教师教学方法和学生学习方法的转变,促使教师深入思考“教什么、如何教”的问题,同时引导学生的思想观念和学习方式从“要我学”转变为“我要学”。因此,实行教学方法和考试方法改革,对于提升教学质量和提高学生培养质量具有重要意义。

1 累加式考试方法的核心和目标

推行累加式考试方法的核心和目标是引导学生学会自主学习,通过自主学习激发创新意识,提升创新能力。累加式考试方法的实质并不仅仅是考试形式的变化,而是通过大作业、小论文、口试、笔试等多种考核方式综合考查学生的学习效果,让学生在完成大作业、小论文等的过程中自主学习。因此,推行累加式考试方法切不可舍本逐末,重形式而轻实质。

考试方法改革要求教师在贯彻和实践累加式考试方法的过程中,真正抓住累加式的实质,无论是大作业、小论文,还是结业考试,都应从引导学生自主学习和考查学生能力的目标出发,考试题目必须具有能够让学生自主创新和发散思维的空间,杜绝死记硬背。这就意味着设有“标准答案”的、死记硬背的题目在累加式考试制度下将不再有容身之地,取而代之的是真正有思考和研究价值的题目,重能力、求创新的考试题目不一定都是教师在课堂上教的。总之,学生掌握的知识和具备的能力,都不是教师在短短几十个学时的课堂上教出来的,而是在教师的引导下通过学生自主学习获取的。

2 目前累加式考试中存在的难点和误区

在实行累加式考试方法改革的过程中,经常听到学生说现在完成一个大作业不容易,要查好多资料;也会听到教师说现在给学生出一套考题很不容易,要考虑知识、能力、素质等方方面面的因素,还要尽量避免与历年的试题重复,出题和判卷都要花掉很多时间。不可否认,实行累加式考试显然比“一张考卷定成绩”难得多,它对教师提出了更高的要求。教师和学生都切身体会到“不容易”,而与“不容易”相伴而来的必定是重能力、求创新的累加式考试方法的不断推进与深入,是学生自主学习的主动性和综合实践能力的不断提升与拓展。为了引导学生自主学习,提高综合实践能力,我们必须下决心,深入推进重能力、求创新的累加式考试方法。

“一张考卷定乾坤”的时代早已过去,然而目前名目繁多的累加式考试就一定能真正客观、公正地考核学生的实际能力吗?累加式会不会重新演变为新形势下的“纸上谈兵”呢?其实解决问题的关键并不在于是否采用累加式。对于以实践为主的课程,显然学生的实践能力考核应该成为重中之重,然而考核学生实践能力的难点在于在现有条件下很难做到客观公正,一是因为目前缺少一些实用的机试自动评分软件,二是因为迄今为止我们还无法有效解决学生抄袭问题,反抄袭已成为当今教学中不可回避的问题,并且国外大学也同样存在作业抄袭问题。

2003年11月,美国Naval Postgraduate School的Peter Denning教授在CACM上发表的GreatPrinciples of Computing一文中除了介绍大学第一年计算机课程的构建、多学科的融合以及加强美国中小学学生抽象思维与写作能力的训练等问题外,还特别指出:在美国大学第一门计算机课程(主要指程序设计语言)的学习过程中,有35%-50%的学生中途放弃,另外还有不少学生通过抄袭或作弊的方式完成课程。可见,机试只能解决“知识、能力”教育相结合的问题,如果学生的抄袭行为不能得到有效抑制,那么“知识、能力、素质”教育相结合将无从谈起。因此,如何通过诚信、理想、道德和创新素质教育,提升课程教学的文化内涵,引导学生“学思融合、行知统一”,使学生不仅学会知识,还学会自己动手动脑,尤其是学会做人做事,这才是计算机课程教学真正需要研究和解决的问题。

综上所述,在推进累加式考试方法的过程中,应避免陷入以下两个误区:一是避免机械理解累加式的涵义,重形式轻实质;二是避免千“课”一律,照搬其他课程考试方法。只有避免这些误区,才能在考试方法改革中改出实效,真正将重能力、求创新的考试方法改革落到实处;只有坚定不移地推进累加式考试方法,才能培养出符合国家和社会需要的创新人才。显然,所有课程的考试方法改革不能都是一种模式,采用笔试、口试还是机试,应该根据课程本身的特点和性质决定,不可一概而论。同时,我们也不希望任何教学改革都要以增加教师的负担为代价,如何能在不增加甚至减轻教师工作量的前提下,依然达到“引导学生自主学习、提高综合实践能力”的目的,正是我们需要思索和研究的问题。

3 目前程序设计课程考试中普遍存在的问题

经我们研究分析,在程序设计考试中普遍存在的问题有以下几个方面:(1)对于程序设计课程而言,卷面笔试等于纸上谈兵,无法真正考核学生实践能力尤其是程序调试能力;(2)教师评阅试卷无法避免人情分,缺乏客观公正性,并且成绩统计周期长、效率低、易出错;(3)现有的机上考试系统往往仅测试运行结果,不考查程序的结构和语义,对程序输入输出限制严格,有语法错误的程序只能给0分,因此学生对主观编程题的评分满意度低;(4)教学与科研分离,教学资源建设低水平重复,无法支持教学和考试方法改革。

为解决上述问题,我们将教学改革的指导思想定位为:以学生为本,以提高学生的计算思维能力、实践动手能力和自主学习能力为目标,在该目标驱动下,借助精品资源和网络让教与学化繁为简,将课堂教学与网络教学相结合、课内教学与课外教学相结合、知识传授和能力培养与素质教育相结合,更新教学内容,改革教学方法和考试方法,变应试为应用,变被动为主动,激发学生的自主学习意识,实现“以教师为中心”向“以学生为中心”的转变。

4 建立以机试自动评分和实践能力考核为主的多重累加式成绩考核体系

针对c语言程序设计课程实践性较强的特点以及上述考试方法改革的基本思路,我们建立以机试自动评分和实践能力考核为主的多重累加式成绩考核体系,在校内率先完全取消卷面笔试。对于该课程而言,机上考试更能真实全面地考核学生对知识的灵活掌握和综合运用能力,尤其是程序调试能力,并且还能降低考试成本,更符合当今节约型社会对低碳环保的要求。

机上考试和自动阅卷评分的好处不言而喻。从实践的角度看,它将“上机实验”和考试很好地结合在一起,有利于更全面地考核学生的编程实践能力,提高学生上机编程的积极性,促进学生编程能力的提高。机器自动阅卷并实时给出评分,不仅能提高教师阅卷的效率,而且还能避免人情分,增加评分的透明度、公正性、准确性和实时性。从教师的角度看,采用机器自动阅卷代替人工阅卷,有利于减轻教师阅卷的负担,但程序设计课程实行机上考试的最大难点在于实现主观编程题的自动评分。

目前国内很多高校要么采用“机上考试+人工阅卷”方式,要么采用“机上考试+测试用例驱动的自动阅卷”方式。测试用例驱动的自动阅卷采用的是动态测试方法,系统根据教师给出的测试用例,通过运行学生程序后得到的结果评判程序的正确性。这种方法没有考虑程序是怎样实现编程任务的,也不能从程序文本的语法结构和语义角度衡量学生程序与正确答案的接近程度,对于有语法错误的编程题只能给0分,因此这种评分方法不符合教师人工阅卷的习惯。

为了克服该考试方法的缺陷,我们在国家自然科学基金项目的支持下,从分析理解程序源代码的角度,基于程序理解技术先后研制开发了基于c/s结构的c语言编程题自动评分系统和基于B/s结构的c语言编程题自动评分系统。从机器阅卷评分的效果看,这两套系统都能实现c语言编程题的机上考试和自动阅卷评分,不仅能对客观题自动评分,还能对c语言主观编程题自动评分,更重要的是评分时不仅能测试程序的运行结果,而且还能分析程序的结构和语义,衡量实现编程任务的正确程度,对于不完整和有语法错误的程序也能给出合理的分数,因此更符合教师人工阅卷的结果。此外,考试实时给出评分,有助于避免人情分;系统中增加反抄袭和查雷同的功能,使考试成绩的评定更加客观、合理和公正。

我们利用该系统改革了c语言程序设计课程的考试方法,以考带学,目的是激发学生上机编写和调试程序的积极性,同时改变传统的以“以人工评分为主”的主观评价体系。以机试自动评分和实践能力考核为主的c语言程序设计课程的多重累加式成绩考核体系如图1所示。

具体地,我们采取如下措施。

1)实行多元化的课程考核方式。

为了使成绩不是简单的累加,除了注重平时的分层、阶梯式的作业和实验成绩外,还包括分阶段的期中和期末两次机上考试成绩,此外还设置了一定比例的鼓励附加分。从“夯实基础、综合设计、创新应用”3个层次设计实验教学内容,实验有4种类型:仿写改写基础型、趣味设计巩固型、综合设计应用型、独立思考探索型。其中,综合设计应用型让学生从学生成绩管理系统V1.0到V6.0,通过多次实验逐步完成一个较大规模的系统编程。

全部作业和实验成绩均由基于Moodle开发的具有在线评测与雷同判定的网络教学平台的在线评测模块给出。机上考试成绩由期中和期末两次机考给出。考试不是目的,我们的目的是为学生提供“由考试发现自身不足,然后在考试后通过努力并在下次考试中提高成绩”的机会,通过考试引导学生多上机、多实践,进而提高编程实战能力。

附加分的取得有多种渠道。一方面,学生机试时完成具有一定难度的附加改错题,可以得到一定的附加分;另一方面,平时在网站论坛上积极发言的学生可以得到一定的自主学习鼓励附加分。此外,学生利用业余时间独立完成具有一定难度的独立思考探索型或创新型实验,也可以获得一定的创新实验附加分。

2)实行多重累加式的成绩评定方法。

课程最终的成绩由“学习过程相对分+机上考试成绩+附加分”累加得到。其中,学习过程相对分由“实验相对分+作业相对分”累加得到,机上考试成绩由“期中机考成绩十期末机考成绩”累加得到,附加分由“期末考试附加题附加分+课外创新实验附加分”累加得到。

3)实行以机试为主的评价体系。

利用C语言编程题自动评分系统使机上考试对主观编程题的自动阅卷评分更加客观、公正,不仅能根据程序测试结果进行评分,还能考查程序结构和语义,衡量实现编程任务的正确程度,并且对有语法错误的程序也能进行评分,同时加强了对考试全过程的监控,实时监测学生插拔U盘次数,禁用学生机的USB口并对学生插拔u盘次数进行报警,从以往的反抄袭转变为利用先进的手段防止学生作弊,使反抄袭不再成为“马后炮”。

5 多重累加式成绩考核体系的实践效果

2004年,我们利用基于C/S结构的C语言编程题自动评分系统V1.0,在学校的部分院系进行c语言程序设计课程的考试试点,2006年在全校范围内进行考试方法改革。自2012年春季开始,我们在全校c语言程序设计课程的考试中改用“基于B/S结构的C语言编程题考试自动评分和题库管理系统”。在图2所示的2012年春季的乐学网活跃课程排行榜中,位居前10的课程中有8位课程主讲教师(苏小红、郭萍、张卫、李希然、赵巍、张洪志、侯俊英、傅忠传)来自c语言课程组。

自2012年春季学期开始,笔者在实验和作业成绩考核中采用了多重累加式成绩考核体系,成绩统计分析结果表明成绩符合正态分布,成绩统计结果如图3所示。

自2006年以来,我们已经累计8年共16个学期在全校范围内实行C语言课程考试改革,每年参考人数约3000人。该考试系统先后推广到国内100多个教学单位试用,具有很好的应用前景。

6 结语

笔者提出的考试改革方案具有如下几个创新点。

(1)解决了以往程序设计考试纸上谈兵、笔试无法考核学生实际动手能力的问题,通过对学生上机编程实践能力尤其是错误程序调试能力的考核,更加全面客观地评价学生的实际编程能力和水平,避免高分低能。

(2)机试方式使得考生在提交试卷后能够实时获得机器的评分,提高了教师阅卷的效率,解决了人工评分易出现的人情分、易出错、周期长和效率低问题,而且相对于笔试而言节省了纸张,既降低了考试成本,又符合目前国家倡导的厉行节约、绿色低碳环保的理念。

(3)评分方法先进,准确实时。主观编程题是系统评分的难点问题,我们研制的c语言编程题自动评分系统的评分方法不同于国内现有的只考查程序运行结果的评分方法,该方法不仅能根据程序测试结果进行评分,还能考查程序结构和语义,衡量实现编程任务的正确程度,并且能对有语法错误的程序进行评分,使评分结果客观、公正,符合教师人工阅卷的结果。

(4)系统提供考试全程实时监控考生u盘作弊行为的功能,对于插拔u盘的考生能够准确定位并及时报警,有助于提高考试的公平性。

(5)在考试结束后,系统能够对成绩和试题难度进行统计分析。此外,系统还具有试题管理、题库管理、用户管理、角色管理等功能。

总之,我们最大的感受就是研究成果反哺教学,才能让教学成果更出色。

上一篇:教育技术在计算机基础教学中的作用 下一篇:上海市高校计算机基础实验教学现状调查分析