您好, 访客   登录/注册

高职院校教师提高《C程序设计》课程教学质量的研究

来源:用户上传      作者: 王 瑾

  摘 要: 《C程序设计》是一门高职计算机专业学生的必修课,其重要程度可想而知,如何提高该课程的教学质量是许多教学人员所关注的问题。本文主要就《C程序设计》课程教学环节中所存在的问题进行了剖析,并提出相应的解决方案,以为进一步提升《C程序设计》教学的效果起到抛砖引玉的作用。
  关键词: 高职院校 《C程序设计》 教学质量
  
  一、引言
  目前,几乎所有的理工类高职院校不仅在计算机系开设了C语言课程,而且在许多非计算机专业也开设了C语言课程。全国计算机等级考试、全国计算机应用技术证书考试(NIT)和全国各地区各部门组织的计算机考试都将C语言列入了考试范围。《C程序设计》作为一门高校的必修课,其重要程度可想而知。
  然而,在《C程序设计》课程教学过程中,很多教师却往往忽略了教学中的某些细节,或没有把握好教学中的关键环节,使得学生在程序的设计上出现了只能看懂听懂,而不能自己独立编写的尴尬局面,从而直接导致了教学质量偏低。我在提出相应教学中存在问题的同时,提出了相应的解决方案,旨在为进一步提升《C程序设计》教与学的效果起到抛砖引玉的作用。
  二、教学中隐藏的不当环节
  1.课前准备不足。
  什么是“课前准备”呢?传统观点把课前准备叫做“备课”,现在“备课”一词已经被一个新的概念所代替――“教学设计”。对教师来说,教案的内容是有用的,切忌走形式。然而,究竟有多少学生接触过程序设计,如何把握程序设计的整体思路,如何跳出只关心语法、概念,而忽视程序流程的设计这个怪圈?许多教师在《C程序设计》课程教学中却没有重视这个环节,为了应付检查而简单地将书本上的内容照抄到教案上,视备课为写教案。由于C语言牵扯到的概念比较复杂,规则繁多,使用灵活,容易出错,且涉及到的细节很多,许多学生自身也从未接触过程序的编写,心理上有畏惧情绪,对每一个细节都过于死抠,过早地滥用C的某些容易引起错误的细节(如++和―的副作用),而导致易钻牛角尖,没有把重要精力放在最基本、最常用的那些部分。不清晰的学习思路,只会导致大部分学生从课程一开始就已经是一头雾水了。
  2.授课方式不当。
  授课方法是教师为完成教学任务和达到教学目的所采用的手段。目前仍有部分老师在《C程序设计》课程采取的是传统的“白加黑(粉笔+黑板)”授课方式。即完全遵循书本内容和知识结构,通过“讲授法”完成一系列的教学任务。“讲授法”从本质上而言是一种单向性的思想交流或信息传输方式,是以教师为中心、学生被动接受知识的一种教学模式。这种传统的教学方式,在《C程序设计》课程中的基本概念、基础语法讲解等方面就已经显得力不从心了。例如:在讲到“转义字符”时,“\n、\t、\v、\b”等的具体意义时,总是很难让学生在抽象的意义中正确理解。虽然部分院校也采取了多媒体的教学方式,但也仅仅是将黑板变成幻灯片,实质上仍避免不了“穿新鞋走老路”的教学效果。值得注意的是,在授课过程中,真正的主体是学生。随着信息技术的不断发展,传统式授课方法已经不能满足学生的需求,必须研究新的授课方法。
  3.教师指导不力。
  程序设计就好比是学游泳,尽管在岸上已经教会了如何换气,如何划动双臂,但不下水体验,总不知道效果如何。程序写得对不对,不在电脑上运行一下,总无法了解程序的运行流程,以及设计此程序能产生的结果。
  《C程序设计》课程的实践性很强,学生只听不练或者是少练,根本达不到学习该课程的目的。可是许多老师和学生都忽视该课程的实践。譬如,老师视上机课为放松课,人虽然在机房,却没有尽职尽责地去辅导学生,只是简单地要求学生按照书本上的例题机械地照搬照抄运行练习;学生视上机课为玩耍课,想去就去,不想去就不去,对程序的编写也仅停留在照猫画虎的水平上。这种既没量又没质的上机实习,对提升教学效果起不了多大的作用。
  三、学习中易犯的常见错误
  1.粗心大意,容易想当然。
  易错点之一没有区分开教材上的数字1和字母l,数字0和字母o的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号(,)、分号(;)、括号(())、双引号“( )”输入出入成中文状态下的逗号(,)、分号(;)、括号(())、双引号(“ ”),造成非法字符错误。
  2.对语法理解不深,运用不当。
  “使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写,漏掉“;”,“{″与″}”、“(″与″)”不匹,控制语句(选择、分支、循环)的格式不正确,调用库函数却没有包含相应的头文件、调用未声明的自定义函数,调用函数时实参与形参不匹配,数组的边界超界,等等。
  3.重视程序编写,忽视程序调试。
  C语言语法比较自由、灵活,使人难以掌握,尤其是初学者,往往出了错还不知道怎么回事,因此编译时出现错误信息在所难免。但许多学生在出现了错误信息时,总是在程序中自己查找错误的语句,很少或是不会利用错误信息进行正确的修改。其实,通过错误信息进行修改是调试的做好解决办法。错误信息定位往往不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,就从第10行开始往前查找错误并修改之。在一条语句错误可能会产生若干条错误信息时,只要修改了这条错误,其他错误会随之消失。一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即每修改一处错误要运行一次程序。
  四、解决《C程序设计》课程教学环节中的问题
  1.抓住教学重点,理清教学思路。
  在C语言的学习过程中,学生遇到最多的困惑是:上课能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。那么如何杜绝这种现象的发生呢?
  在教学中,随着教学的一步步深入,教师应及时了解学生的学习情况:究竟有多少学生能够独立的进行程序的编写。一些学生所谓的看懂听明白,只是明白了很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程),更谈不上灵活运用这些知识去解决实际问题。
  对于学生来说,语法知识课本中可以找到,书中也不乏经典示例,但如何进行程序的编写却缺乏整体的思路。教学重点应是先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后研读现成C语言经典程序,看懂别人是如何解决问题的,提高学生的程序设计能力上下功夫。
  2.采用新颖的授课方式,改变传统的授课方法。
  对于《C程序设计》课程的教学,教师应采用“将传统的教学方式与多媒体教学相结合”的授课方式。在教学过程中,教师应有选择地使用多媒体教学:对于课程中的语句、语法、语规等基础知识,运用多媒体教学,减少板书时间,以增加信息量的传授;同样,对于课程中抽象性较强和难以理解的内容,如指针、函数的参数传递和程序的流程等,也使用多媒体教学并针对教学内容进行形象生动的演示,这样既有利于学生的理解,又能节省讲授时间,起到事半功倍的作用;而对于多媒体教学不易实施的程序设计方法的讲解,则采用传统的教学方式,进行课堂讨论、板书讲解结合提问,将问题层层剖析、层层深入,让学生充分地参与,一步一步地写出算法的表示及其演变过程。教师应教会学生如何思考、推理,如何用语句实现算法,培养学生的抽象思维、逻辑推理能力。这样,将传统的教学方式与多媒体教学相结合,能大大提高学生的综合思维能力,提高教学质量。

  3.重视课内上机实践,多进行验证性练习。
  《C程序设计》课程的教学目的主要是培养学生程序设计的能力,学生只有通过大量的编程练习,才能真正掌握语言知识,培养程序设计的能力。
  我在每次上机课时都会要求学生按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法,包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格。
  在第一步输入的C程序的基础上我会要求学生进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。
  例如:将最简单的Hello World!程序
  #include ″stdio.h″
  int main()
  {
   printf(″Hello World!\n″);
  return 0;
  }
  中的“printf(″Hello World!\n″);”中的“Hello World!”改成你的姓名,运行一下程序,看有什么变化?找出程序结果变化的原因。这样就加深了学生对C语句的理解。然后要求学生不看教材将前两步的程序进行正确的输入并运行,目的是对前两步的记忆、理解进一步强化。
  4.制造人为错误,增强程序的调试能力。
  在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。要注意的是:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因。上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误。例如,将“Hello World”程序中语句“printf(″Hello World!\n″);”中的“;”改成中文的分号(;),运行一下程序,看有什么结果?
  C语言的错误信息的形式:(下面例子是的Turobo C2.0错误信息)
  错误 文件名行号冒号 错误内容
  ↓↓ ↓ ↓↓
  Error E:\WinTc\WinTc\frist.c5: Function call missing) in function main
  调试程序是一种实践性很强的事,纸上谈兵是没用的,就像只听教练讲解示范,而不下水练习,是永远学不会游泳的。
  五、结语
  学习C语言的目标不仅仅是语法规则的掌握或简单程序的再现,更重要的是能够形成编程的理念,应用C语言解决实际问题的能力。因此C语言教学的重要目标是:采用有效的教学方法帮助学生成为有效的、成功的问题解决者。但单靠有效的教学方法还远远不够,《C程序设计》是一门实践性很强的课程,教师要鼓励学生在课后多动手、勤实践,把学习的重点放在编制程序和解决实际问题上。
  
  参考文献:
  [1]谭浩强.C程序设计[M].北京:清华大学出版社,2005.
  [2]高秀娥.C语言教学方法探讨.中国教育学杂志(高等教育版),2006.
  [3]王传安,贺文娟,赵晓萌.C语言有效教学方法探讨[J].信息技术与课程整合,2008,(18).


转载注明来源:https://www.xzbu.com/9/view-906655.htm