您好, 访客   登录/注册

C语言教学方法研究

来源:用户上传      作者: 郭 妍 刘双双 段欣妤

  摘 要:网络已经像电一样成为人类活动的必需,这种依赖越发的强烈且无处不在。无论是有线或是无线网络它们的终端必定会有芯片,有芯片的地方就要有代码在,有代码就要有程序员,而程序员的工具是他的编程语言。当前的编程语言里由C语言演化或者说以C语言为基础的语言占了很大部分。《C语言程序设计》已经作为许多院校理工科专业的基础公共课,是程序员考证及软考的必考课程,而且越来越多地成为非计算机专业的学习课程。学习该门课程可掌握程序设计的一些基本方法和技巧。但在教学实践过程中笔者发现大部分学生存在着“听得懂,不会编”的现象。因此,在理论教学的过程中,对教学内容、教学方法应有所改革,同时必须加强实验教学环节。因为只有在实践中学生才能真正学会如何编写程序和调试程序,也只有通过上机实践才能更好地运用程序设计的理论知识。笔者结合自己这几年的教学经验,分析学生在学习过程中所存在的问题,总结出了理论教学和实验教学的一些方法。
  关键词: C语言 传统教学 多媒体 分组实验 协作学习 算法教学
  
  一、引言
  
  也许很多学生看到现在的可视化编程语言强大的应用需求、人性的界面,还有它们的易操作性(其实并不是如想象的那么简单),会觉得C语言已经落后。C语言作为学习程序设计方法的一门入门语言,在许多院校的理工科专业都开设了相应的课程。C语言是国际上广泛流行的计算机高级语言,适宜作为系统描述语言,也是通用的程序设计语言,可以用来编写系统软件和应用软件。同时,C语言具有逻辑性强、处理问题周密、严谨的特点,是集知识和技能于一体,实践性很强的课程。但由于C语言中的运算符包含范围广泛,数据结构丰富,而且C语法限制不太严格,程序设计自由度大,使学生在编程过程中有一定难度。学生在学习过程中存在着以下几种现象:第一、学生(尤其是初学者)的编程往往只停留在按照教师上课所讲的例题按部就班的水平,一旦稍有改变,便出现举步维艰的困惑,从而产生放弃学习该课程的念头。第二、学生没有明确的学习目的,对学习该课程的意义不是很清楚,尤其对该课程的实验课兴趣不大。第三、现有实验大多注重语句、语法、流程、结构等概念性的基础知识,没有把编程解题思路、算法和程序测试调试等运用知识放在首位,对学生分析问题和解决问题的能力训练不够。因此在加强理论教学的同时也应该改革实验教学。
  
  二、强化理论教学理念
  
  1. 多媒体与传统教学方法相结合。
  在教学过程中,运用多媒体课件辅助教学,有利于激发学生的学习兴趣,能发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程。但是,多媒体教学也有不利之处。例如:有些教师喜欢在自己的课件中添加一些动画效果和声音效果,其目的是为了增加课件的美观性,但正是因为这一点很可能会在上课过程中分散学生的注意力,影响其对主要问题的理解。其次,过多地使用多媒体授课会影响师生之间的情感交流。因此在C语言程序设计课程教学过程中,应根据本课程的特点,适当地将多媒体与传统教学进行有机结合。对于一些概念性的知识和实例可事先将其制作成课件,在教学过程中再对实例的编写过程进行板书讲解,结合问题,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力就会得到充分的发挥,对问题的理解也变得更容易。
  2. 重视程序算法教学,培养学生创造性思维。
  学习程序设计不仅是为了掌握一种开发工具,更重要的是利用计算机编程解决一些实际的问题。一个程序应包括对数据的描述和对操作的描述。对数据的描述就是数据结构;对操作的描述就是计算机的解题过程,即算法。算法是解题的方法和步骤,是整个程序设计的灵魂所在。编制程序,就是根据算法,用具体的语言依据某种规则编写计算机执行的命令序列。因此学习语言的重点是锻炼学生分析、分解,最终归纳并整理出算法的能力,培养学生的创造性思维能力。在教学过程中,学生能否理解算法,并掌握算法,成为教学的首要问题。因此在教学过程中,应将算法教学融入到理论教学中,从简单的实例入手,分析、讲解算法的同时引入一些基本的逻辑结构及语法等基础知识。
  3. 激发学生学习兴趣。
  有些初学者因为在学习过程中遇到一些棘手问题而对该课程失去学习的信心。为了激发学生的学习兴趣,教师应加强师生间的沟通,通过网上邮箱或QQ集中答疑或课间答疑,以弥补课堂教学的不足。同时,教师可以在上课时偶尔介绍些程序员的故事、新闻让学生增加学习兴趣,在上机实践过程中可多布置些趣味性的实验(如汉诺塔问题、魔方阵、百钱买百鸡等),同时鼓励基础较好的学生帮助基础偏差的同学,照顾到不同层次的学生的学习需求。
  4. 充分调动学生学习主动性。
  在C语言教学过程中,是否能够充分发挥与调动学生的积极性和主动性是非常重要的一个教学环节。在初学时,教师可在本次授课结束时针对下次授课内容布置一两道专题让学生利用课余时间去思考,收集资料,并在下次课堂中抽出几分钟组织学生发言和讨论。这种教学方法不仅可以让学生获得许多课外知识,同时能够促进教学内容的改革,而且有利于充分挖掘学生的学习潜力,培养学生学习的主动性。尤其对学有余力的学生,提供高于课堂学习难度的拓展空间,鼓励他们自学,并给予方向性指导,让他们超前学习。在C语言教学中,培养学生的自学能力尤为重要。在自学过程中学生可以接触到更多的课本外的实际应用知识,如果学生的学习仅仅依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。
  
  三、实验教学的改进
  
  1. 实验分组制。
  传统实验课一般是学生单独完成实验。这种实验机制多少会对基础偏差的学生造成一种紧张、慌恐的心理,而对基础较好的学生造成一种优越、骄傲的心理。对此,教师可以根据学生实际情况,按组划分,有针对性地分别设计和布置不同的实验内容,学生可以选择性地做实验。同时每组安排一个基础好的学生予以帮助。通过这种协作学习的方式,学生为了达到小组学习目标,个体之间可以采用对话、讨论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。
  2. 实验题型要多样化,不必拘泥于从头到尾编程这一种题型。
  对于初学者来讲,编程思维尚未熟练,编制的程序可能会出现较多的错误,这样一来难免会给学生造成一种学习心理压力,挫伤学生学习的积极性。如果教师能在实验课上首先给出程序的初始部分,然后让学生填空程序的主体部分完善整个程序的功能,久而久之就规范了学生的编程习惯。另外由于C语言语法限制不太严格,程序设计自由度大,有些错误很容易犯却很难发现,为了提高学生在TC中调试程序的能力,教师可以在上机过程中事先针对一些共性错误,精心设计几道程序改错题,然后通过局域网发布到每个学生的机子上,让学生进行调试并改正,这样自然就提高了学生调程的效率。最后布置一道完整的程序题要求学生编程调试。
  3. 跟踪实验过程,对学生进行及时指导并演示。
  在学生上机操作过程中,教师要走到学生中去,及时了解学生上机操作的情况。对学生在实验中存在的问题进行及时解答。对于学生中普遍存在的问题,要组织学生进行讨论,并且通过屏幕广播演示,和学生一起来解决。
  
  四、结束语
  
  程序设计教学的目的,不仅要使学生掌握语言的基本规则,更要切实提高其编程解决实际问题的能力和实现算法的能力。作为教师,我们只有“重算法,更重方法”,时刻以启发和训练学生的编程思维为主导思想,精心设计教学和实验环节,才能引领越来越多的初学者走进程序设计的殿堂。学生熟练掌握好C语言将对其今后学习其他语言课程打下良好的基础。
  
  参考文献:
  [1]谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.
  [2]廖雷.C语言程序设计(第二版).北京:高等教育出版社,2003.
  [3]严桂兰.C语言程序设计与应用教程.福建:厦门大学出版社,2001.


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