高职院校计算机专业《C语言程序设计》教学探讨

2011-12-29 00:00:00蒋斌
考试周刊 2011年38期


  摘 要: C语言是高职院校计算机专业的必修课,是学生学习程序设计的入门课程。在《C语言程序设计》教学过程中,教师应抓住C语言重点内容和环节,精心规划教学;引导学生养成良好的编程风格,利用多种先进的教学技术,培养学生的编程能力和解决实际问题的应用能力;在教学中培养学生的自学能力,鼓励学生自学C语言前沿的应用技术。
  关键词: C语言 教学方法 应用编程能力 自学能力
  
  1?郾引言
  《C语言程序设计》是高职计算机类专业开设的首门高级程序设计语言课程。它使用广泛,表达能力强,目标代码运行效率高,可移植性好;既具有高级语言的优点,又具有低级语言的许多特点;既可以用来编写系统软件,又可以用来编写应用软件。目前,在《C语言程序设计》课程教学中,许多教师和学生都认为C语言概念多、规则繁杂、使用灵活、书写方式多变、容易出错。教师教学和学生学习都感到困难,增加了教学的难度;而学生抱怨课程内容枯燥乏味,没有兴趣;在解决实际问题编写应用软件时往往无从下手,缺乏编程和调试的能力。下面我就C语言的教学谈谈自己的一些看法和建议。
  2.精心规划教学
  有些学生甚至在学完了该课程后仍然无法完整、正确地理解C语言的整体结构和特点。我针对这种情况,在教学课时上,《C语言程序设计》课安排一学期学完。把该课程划分为两个学习阶段:第一阶段《C语言程序设计I》,主要将基础知识融入案例与任务中进行教学,即基础阶段;第二阶段《C语言程序设计II》,主要进行30个学时为期一周的应用程序设计与实现,即应用阶段。
  基础阶段《C语言程序设计I》的考核,主要考虑对学生动手编程能力的培养,因此考核分成理论和上机两部分。理论考试为开卷,占总评成绩的20%;上机考试主要题型为编程和改错,占总评成绩的30%;平时成绩占总评的20%。应用阶段《C语言程序设计II》的考核,以面试考核为主,占总评成绩的30%,考查学生对项目案例教学的理解,项目案例功能的扩展和改进等方面的情况,以及运用C语言解决实际问题的应用能力。
  3.教学伊始引导学生养成良好的程序设计习惯和代码编写风格
  首先,在C语言教学之初,让学生阅读简单的规范的C语言程序,在学生心中起到“先入为主”的效果;其次是在上课过程中,充分利用现代的教学方式,课件演示和板书都力求以规范的格式书写程序,告诉学生程序就该这样写;平时上机练习,要对学生中代码书写出现的不好习惯,及时提出并给出改正的方式方法。总之,要培养学生严谨、清晰的代码编写风格和良好的程序设计习惯。
  4.采用多种教学方法,培养学生的编程能力
  4.1循序渐进法。在C语言的教学过程中,教师起非常重要的作用,尤其是在教学中要激发出学生的兴趣。大多数学生都是初次接触C语言,这是一个全新的内容,同时也会有全新的收获。由于该课程是培养学生程序设计的能力,之前学生几乎没有此经验和能力,要通过教师循序渐进地引导,再加上学生上机的体验和感受,使其逐步积累程序设计的能力。对于教师给定的题目,教师应该遵循由低到高、由简入难,有趣并尽可能贴近实际的原则。开始时,教师给予学生的题目都是单项的练习,如简单的输入输出、数据类型、数组编程等。到了C语言学习的后期,可以出一些较复杂并和实际结合的题目。如:在讲解二重循环知识点的时候,教师可设计以下由浅入深、由易到难的实例。
  (1)打印如下由易到难的图形
  通过上述三个由浅入深的实例,自然就可以总结出打印图形的规律:把每行前输出的空格数与行的关系、每行打印“*”的个数与行的关系填入内层循环的终止即可。另外,由于外层循环包含了多条语句,因此必须用把包含在外层循环中的语句用{}括起来。推广到一般,打印符号的大致代码形式如下:
  for(i=l;i<=行数;i++)
  {for(j=1;j<=每行的空格数与行的关系;j++)printf(" ") ;
  for(k=1;k<=每行的符号数与行的关系;k++) printf ("符号") ;
  printf ("\n") ;
  }
  (2)通过上述的总结,让学生自己编写程序,打印如下复合金字塔图形
  上述程序虽然相对比较简单,但对于初次接触双重循环程序的学生来说还是不易掌握。在教学活动中,教师要通过实例将语法讲解透彻,实例的难度要循序渐进,从易而难,使学生在每次的学习过程中都能产生成就感,从而进一步刺激学生的求知欲望,通过教师的主导性来发挥学生学习的积极性、创造性。
  4.2案例教学法。在教学的过程中,首先教师拿出一个任务案例展示给学生看。这个案例里面涉及到的C语言知识点。对于已经学过的知识点,教师通过案例来展示,可以使学生巩固知识点并加深印象;对于没有学过的地方,就是在其后的课程中讲解的重点,并告诉学生,只有认真听讲才能完全理解案例的精彩之处。由于任务案例的引入,使得分散的知识点立刻变成实践应用,因此学生在课堂上也更容易被教师吸引,能更紧地跟上教师的思路。对于学生来说,他们在案例学习中,不一定能把所学的知识一一总结出来,但是他们见识了C语言是如何处理实际问题的,这对他们提高认识,增加兴趣,提高解决实际问题的能力都是很有帮助的。
  4.3分组教学法。分组教学体现了学生的主体地位,可以激发学习兴趣。根据班级人数和机房布置情况5人—6人分为一组,组长位置坐在中间,水平较好的学生挨着水平较差的学生。分组教学可以实现提优补差。水平较差的学生在遇到问题时可以及时得到帮助,能跟上全班进度,也增强了继续学习的信心。分组教学可以培养学生自主探究、合作学习的能力。《C语言程序设计》课程是用程序项目的方式把实验内容布置下去,许多综合性程序项目要求以小组为单位完成。
  4.4任务驱动教学法。为了培养学生的创造思维、独立分析问题和解决问题的能力,以及实际编程的能力,我们设计短期任务与长期任务结合的上机内容。以一个项目作为长期任务,再按不同功能模块分解开来,形成一个短期任务。每一章学过之后要求完成一项或几项编程作业,各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。例如,以“学生成绩管理系统”为课程设计的长期任务,从常用输入/输出语句printf和scanf开始,让学生编写主函数调用若干个空函数形成一个文本型菜单的雏形:学习常用数据类型后,再编写一个验证密码输入的函数;学完选择结构后,要求编写一个菜单选取函数;学完循环控制和数组后,要求建立班级课程的成绩输入输出函数;学完结构体类型后,要求使用结构体数组来存储和处理学生的信息;学习链表后,要求利用单链表动态管理学生的成绩;最后在“文件”这一章,要求利用文件操作完成学生成绩管理。当学完整个课程,完成了平时要求的各项编程作业之后,学生就会发现,自己完成的远不是一个一个零碎的程序段,而是一块块制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,学生从整的角度来审视整个程序的设计,并通过上机进行综合调试,达到提高编程能力的目的。
  5.培养学生的自学能力
  计算机技术知识更新太快,对于计算机专业的学生来说,在C语言教学中,培养学生的自学能力尤为重要。教师不仅要传授现有的知识,而且要传授获取知识的方法。对于学习能力较强的学生,教师应该鼓励他们自学,并给予方向性指导,让他们超前学习,甚至自学C语言前沿应用技术。在实际教学过程中从问题入手,引导学生在寻求问题的解决方案的同时,学会了运用网络、图书馆等获取信息的方法,对获得的信息进行筛选和修改,并进一步理解,最后把其应用到自己要解决的问题中。这一过程,为今后的终身学习打下了基础。
  6.结语
  总之,在C语言程序设计的教学过程中,教师应遵循理实一体化教学原则,培养学生的编程能力和利用C语言解决实际问题的应用能力,培养学生的自学能力。在今后教学中我们仍将不断实践与探索,进一步改进教学方法,充分调动学生的主观能动性,以取得更好的教学效果。
  
  参考文献:
  [1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2007.
  [2]崔娅萍.高职C语言教学探讨与研究[J].中国科教创新导刊,2010,(28).
  [3]乔瑞琴.语言教学的实践和探索[J].山西煤炭管理干部学院学报,2010,(03).
  [4]王创伟,汤克明,蔡长安.《C语言程序设计》教学改革方案与实践[J].现代计算机(专业版),2010,(11).
   注:“本文中所涉及到的图表、公式、注解等请以PDF格式阅读”