程序设计实验课堂错误转化提升策略研究
2016-03-22张野,宋微
张 野,宋 微
(渤海大学 信息科学与技术学院,辽宁 锦州 121000)
程序设计实验课堂错误转化提升策略研究
张野,宋微
(渤海大学信息科学与技术学院,辽宁锦州121000)
摘要:针对目前程序设计类课程实验教学中存在的问题,本文结合计算机专业课程的教学内容,通过总结和分析,给出了提升学生程序设计能力的方法.以《C语言程序设计》课程为例,指出学生在学习中所出现的常见错误,并重点阐述"语法错误"、"逻辑错误"、"隐性错误"等典型错误进行转化提升的策略,建立错误资源共享库.教学实践证明,实验错误转化提升策略能够提高学生的学习兴趣,增强学生的应用能力.
关键词:程序设计;实验错误;转化提升;策略
程序设计基础课程作为大学计算机专业、软件专业的必修课程,也是各理工科的核心专业课,而该类课程的实验与实践教学是提升相关专业学生就业竞争实力的有效途径.实验教学的本质是一种创造活动,是培养人的活动,有计划、有组织地把科学知识,思维能力、实验方法、操作技能传授给学生[1],通过实验教学,不仅培养学生的能力,而且启发他们的创新精神和创新意识,实验教学更要培养他们严谨的科学态度和诚实的优良品质.但是在传统教学理念支配下,目前的程序设计类课程的实验教学,主要以老师讲,学生听,实验照书敲代码等形式,在学生实验过程中,经常性的出现语法错误、语句错误等低级错误,反映出学生编程能力不足,教学效果比较差[2].很多专家学者和一线教师在程序设计类课程中,探讨了很多有意义的教学方法,取得了一定的效果[3][4].
学生在分析问题、设计算法到程序实现的学习过程中,不断的会出现实验错误,基于实验错误是教学过程的巨大财富的思想,充分挖掘实验错误的价值,本文对程序设计类课程中学生常见的错误类型进行分析,提出一系列错误转化提升的教学策略,并在《C语言程序设计》课程中进行了教学实践,取得了较好的教学效果.
1 程序设计类课程存在的实验错误类型分析
1.1程序设计类课程与课程群分析
程序设计类课程与专业方向紧密相关,课程内容自成体系,程序设计作为目前计算机及相关专业的主流技术,占有举足轻重的作用.但是在实际的教学过程,大多数学生的程序设计水平不高.程序设计水平直接决定了学生对计算机专业知识的应用能力,也是学习后续专业课的基础,因此,如何提升实验教学水平成为保证学生编程能力提升的关键[5].
程序设计语言的学习很难在一个学期的时间将一门语言完全掌握,编程内容的学习应该渗透到其他专业课的学习之中[6].但是由于现在的课程设置基本按照课程的教学要求,未能考虑到课程之间的联系性,因此,有必要分析程序设计课程的课程群,以便教师在教学过程中建立学生的学习体系,提升学生的就业竞争力.以计算机专业为例,计算机程序设计类课程基本集中在计算机软件方向,包括《C语言程序设计》、《面向对象程序设计》、《数据结构》、《计算机网络》、《数据库原理与应用》、《软件工程》等.下面以《C语言程序设计》为例,说明程序设计对学生实践能力培养的重要作用,如图1所示.
图1学生程序设计能力培养层次
《C语言程序设计》是专业基础课程,是学生第一门计算机程序设计课程,因而在教学过程中应该注重对学生分析问题、解决问题能力的培养,侧重学生编程能力的养成.减少项目类、综合性的实验内容,注重程序设计的基础性与实用性[7].
1.2实验错误类型分析
1.2.1语法错误分析
对于学生,由于接触编程时间较短,在编程过程中没有符合语法规则而产生的语法错误是最常见的错误[9].如:表达式不完整、关键字错误、数据类型不匹配等.语法错误可以使用集成开发环境来进行调试,编译器会对程序中的语法错误进行判断,编译系统会自动提示相应的错误位置和错误原因.但是由于学生初次接触程序设计基础课程,对专业术语不敏感,很难找到错误.学生遇到错误,第一时间就会找老师解决,老师在实验课的大量工作就会解决这些基础性错误,难以完成既定的教学目标. 1.2.2逻辑错误分析
程序通过编译器的语法错误检测,但是程序在运行时出现错误,导致程序被中断,或者程序的运行结果没有得到预期的结果.例如:除数为0、运算符使用不正确、循环语句边界错误等.逻辑错误不会产生错误提示信息,或者不能准确定位错误产生的位置[10].学生由于编程的经验尚浅,很难准确判断出错的代码段,不能方便的调试程序,错误难于排除.
1.2.3执行错误分析
程序能够通过编译器的检查,运行也没有出现错误,但是执行的结果不是用户所期望的,或者执行的结果无法人工判断对错[11].例如:查找年龄大于40岁的职工,结果中出现了30岁的职工,这显然不是用户所期望的结果;在数学计算中,由于很难人工计算出结果,因此,不能判断出结果是否正确,只有当发现明显的误差结果时,需要重头排查,才会发现程序出现错误.一般情况下,编译器在编译程序时,不能检测到程序中的逻辑错误,也不会产生逻辑错误的提示,因此逻辑错误比较难排除,需要程序员仔细的分析程序,并借助集成开发环境提供的调试工具,才能找到出错的原因,并排除错误.
2 实验错误转化提升的教学策略
2.1主动设置语法错误,将语法错误转化为教学资源
在教学设计阶段,根据以往的经验,事先预计学生有可能出现的语法错误,并把这些错误放在学生要完成的实验中,通过主动设置错误,让学生在改正错误的过程中加深印象,理解错误中所涉及的问题,减少以后再次出现错误的几率.例如在使用C语言作数学运算时,必须注意运算结果的数据类型,如果运算结果超出运算数据类型所表示的数值范围,必须进行强制数据类型转换.
2.2因势利导逻辑错误,将逻辑错误转化为重难点教学
逻辑错误是一种很好的课堂资源,这些资源对突破课程的重难点教学非常有帮助.学生出现了逻辑错误,表明学生在学习重难点的过程中遇到了问题,由于教学中的讲解都是能够正确运行的程序,学生在学习时不存在理解上的障碍,但是在实验过程中,往往出现大量的错误,说明学生对重难点的知识迁移有困难.例如在循环语句的讲解,对循环语句的正确描述是教学的重难点,在使用while和do while编写程序时,学生会出现语句次序颠倒致使程序结果不符合要求、条件表达式错误、循环边界错误等逻辑错误.教师可以利用这些典型错误引导学生进行讨论和总结,从而建立和完善学生的知识结构.
2.3激活隐形错误,培养学生创新能力
学生在学习编程的过程中比较注重结果,很难发现隐形错误.教师遇到此类问题,不要直接指出错误,而是要引导学生多观察、多思考,学生对程序的隐形错误有较大的兴趣,找到错误后会非常兴奋.造成隐形错误的原因通常是学生对某些关键环节把握不够准确,教师可以利用这个机会,引导学生进行知识结构的再构建,培养学生的探究能力与创新能力.
2.4整合错误,建立错误共享资源库
发现错误的一个很重要的价值是提醒其他同学减少同类错误.在上机实验操作中,要求学生把每次课堂上出现的错误记录下来,放到错误共享资源库,学生在调试程序时,如果发现错误,也可以从资源库里“检索”.已经完成任务的同学在建立错误共享资源库的过程中提高了分析问题的能力,也有效的缓解教师的压力,使得教师可以侧重于对一些共性的问题进行关注.
3 实验错误转化提升教学效果评价
程序设计基础课程上机实验操作是程序设计基础课程的必备环节,在程序设计基础课程中所占比例在40%以上,在教学大纲和教学内容的要求下,程序设计基础课程的教学流程首先由教师明确实验任务、讲解实验内容,然后学生自主上机练习,教师负责答疑.我们设计的实验错误转化提升策略在教学流程中添加了程序错误调试的过程,要求学生在上机编程中对出现的错误进行记录并自行设计解决方法,完成程序错误调试.具体的实验教学流程如图2所示.
图2程序设计基础课程实验教学流程
实验错误转化提升的教学效果评价选取《C语言程序设计》课程教材中的10个程序进行学习,这些程序涵盖变量定义、流程控制、函数、结构体等内容.选取两个班级共计60名同学,并对学生分为三组,第一组采取三种实验错误转化提升策略,并配合学生错误共享资源库进行实验学习,第二组采用传统的上机实验方式,第三组由学生自主上机学习,并配合错误共享资源库进行错误修正.学生在学习10周后进行测试,测试结果分别统计语法错误、逻辑错误、隐形错误的数量,实验统计结果如图3所示.
图3实验错误转化提升教学效果评价
从图3中,我们可以明显地看出小组之间存在着明显的差异,尤其在语法错误和逻辑错误方面,差别较大.
通过对各个小组的测试结果进行分析,我们可以得出如下结论:
(1)语法错误作为实验课程的出现频率最高的一种错误类型,决定了学生学习兴趣的持续和后续学习的基础.通过本文的错误转化提升策略,学生在语法错误的修正方面具有了较好的效果,而未经过错误转化提升策略训练的学生,尽管在学习过程中能够改正部分语法错误,但是存在着“常改常犯”的不良习惯,缺少总结与提升的过程.值得注意的是,第三组自主学习的同学,经过错误共享资源库的帮助,语法错误的数量明显减少,但是逻辑错误和隐性错误的数量未出现明显变化.因此,错误共享资源库对学生改善语法错误的效果较为明显.
(2)由于学生的语法错误明显减少,导致在教学过程中逻辑错误出现的几率增高,学生在实验过程中,着重解决程序的逻辑问题,进而对程序实现的思路和算法的理解有了进一步的提高,教师也在教学过程中侧重对学生逻辑思维能力的培养,对学生编程能力的培养与编程习惯的养成起到了积极的作用.
(3)经过错误转化提升方法训练的学生,在出现隐性错误的数量上高于另外两组,主要原因在于学生的语法错误和逻辑错误数量相对较少,编程已经进入到一个知识结果再构建的过程,尽管隐性错误的数量高于另外两组,但是在总体的错误数量显示出该组学生的技术水平要远远超过另外两组的平均水平,也体现出了学生在学习过程中的探究能力和创新能力.
4 结论
本文从理论和实践两个方面,研究了程序设计课程实验错误转化提升策略,从实践应用情况来看,取得了比较理想的效果,学生的编程素养和编程能力得到了很大的提高.学生的错误是课堂教学的宝贵财富,我们应充分利用这些错误带给我们的教学契机.实验错误也只有在不断地改正中行进,在教师的良好驾驭中转化提升,才能更好的提升学生的编程能力.实验错误转化提升策略的应用,使得传统的计算机实验教学模式发生了重大的改变.通过实验错误转化提升的训练和错误共享资源库的构建,让学生不再停留在上机改错的低层次学习,从而在根本上改变学生对学习编程的畏难心理,真正做到从错误走向正确.
参考文献:
〔1〕葛文庚,蔺莉.程序设计基础课程教学模式研究与设计[J].电子设计工程,2012(04):44-46.
〔2〕许碧荣.电子专业PLC实验的教学改革与实践[J].电子科技,2010(12):112-113.
〔3〕徐慧,郭荣祥,周建美.多维一体的“数据结构”实践教学系统的构建[J].计算机教育,2011(10): 66-70.
〔4〕张鹏,戚梅.《编译原理》课程教学改革探讨[J].电子设计工程,2012(05):8.
〔5〕王晓杰,王芸.工程化方法在《数据结构》实践教学中的应用[J].福建电脑,2011(3):182-183.
〔6〕张勇.“Java程序设计”课程教学改革研究[J].电脑知识与技术,2011(24):5980-5981.
〔7〕于晓强,赵秀岩,闫丕涛.计算机程序设计课程中计算思维能力的培养[J].计算机教育,2011 (13):18-21.
基金项目:渤海大学教学改革研究项目(BDJG-14-QN-B-001)
收稿日期:2015年11月22日
中图分类号:TP311;G642
文献标识码:A
文章编号:1673-260X(2016)02-0256-03