张吉玲
摘要:《C语言程序设计》是高校计算机专业的一门基础课程。这门课程的教学目的在于让学生掌握C语言,并且能应用所学的相关知识编写程序,成为学生今后学习其他专业课程的基础工具。该文就教学中存在的问题进行了分析,并对教学方法提出了几点建议。
关键词:C语言程序设计;教学方法;任务驱动;案例驱动
中图分类号:G424文献标识码:A文章编号:1009-3044(2012)30-7300-02
C语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构化程序设计语言之一。C语言既适合于编写系统软件,也适合于编写应用程序。它把高级语言面向过程和低级语言与硬件关系密切的优点有机地结合起来,因此,它具有许多显著特点。如:语言简练、使用方便灵活;运算符丰富;数据类型丰富;允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作,这是其他高级语言所不可比拟的。在教学过程中发现对于大学一年级学生而言,第一次接触C语言,对其中的一些知识点很难以理解。如:运算符中的自增、自减运算符;程序设计基本结构中的选择结构和循环结构的执行过程;数组的应用以及指针的应用等问题都是让很多学生难以掌握的问题,从而失去了学习这门课程的兴趣。为了让学生能更容易接受这门课,教师必须改善教学方法,以提高学生的学习兴趣,达到学以致用的目的。
1 《C语言程序设计》教学现状与存在问题
1.1 学生的学习方法不科学
对于大部分学生而言,这门课的学习方法存在很大问题。首先是学生自制力差,课前不预习本节课的知识;其次,在课堂上,学生只是一味的听老师讲解,没有养成记笔记的习惯,即使有同学记笔记,也是机械性记录讲授内容,没有从根本上理解具体内容;再次,课后不复习课堂上学到的相关知识。这样就造成对C语言基本知识不理解,C语言课程难学的局面。
1.2 教学方法存在问题
在整个教学活动中,教师处于中心位置,学生的主体性被忽略,在学习过程中被动的接受知识,所以经常出现“学完忘完”的现象。由于没有从根本上理解讲授内容,难以跟上教师的教学节奏,长此以往,难以发挥学习的积极性和主动性,降低了学习的兴趣。
2 教学方法的改进与研究
2.1 课堂互动
传统的教学主要以教师的讲授为主,学生只是被动的接受,这样导致部分学生注意力不集中,不能主动的分析问题,解决问题。因此,在授课的同时,要通过提问-回答的方式集中学生的注意力,活跃课堂气氛。随着对学生情况的了解,让基础弱的学生上台互动,可以提高这部分学生的学习主动性。
2.2 使用典型案例,激发学生的学习兴趣
俄国文学家托尔斯泰说过:“成功的教学所需的不是强制,而是激发学生的学习兴趣。”激发学生的学习兴趣,调动学生的学习积极性是C语言教学过程中不可缺少的重要环节。因此,在讲授过程中要列举出生活中碰到的典型问题,引导学生用C语言知识解决问题,可以激发学生学习C语言的兴趣。例如:在讲授选择结构时,可以列举十字路口方向选择的例子;在讲授循环结构时,可以列举学生一学期课表的例子。这些问题都是发生在学生身边的问题,如何利用所学知识解决问题是教师在课堂上讲授的重中之重。通过对这些问题的分析讲解,学生更容易将学到的知识加以运用。另一方面,为了激发学生的兴趣,可以穿插一些游戏的程序设计,如贪吃蛇等,这样学生在学习知识的同时,还可以享受知识带来的乐趣。
2.3 算法为主,淡化语法
C语言是面向过程的程序设计语言,程序设计主要包含两重任务,首先是把要用计算机处理的实际问题抽象为数学模型,设计出解题步骤即算法,然后对所设计的算法进行编码,这就是编程,即所谓实现算法。由此可见,学习C语言的重点,就是掌握分析、分解、最终整理出算法的方法。与之相对应,C语言的语法是工具,是算法的一个具体实现。因此,在C语言的学习中,一方面要熟练掌握基本的语法,因为它是算法实现的基础,另一方面必须认识到算法的重要性,学好这门课的最佳途径是编写程序,只有自己动手不断的编写程序,调试程序,才能提高编程水平,进而才能学好这门课程。
2.4 培养良好的阅读和分析程序的能力
阅读和分析程序的过程也是为程序设计奠定基础的过程。在分析程序结果的过程中,不但可以掌握整个程序的执行流程,更能分析出具体结构的组成、语法及实现的功能,如:程序中的选择结构、循环结构,在分析的基础上,学生更容易掌握它们的结构组成和执行过程,可以为以后的编程中独立使用这些结构奠定基础。教师在讲授中也应该有意识的向学生渗透程序设计的思想和方法,引导学生从分析程序开始,逐步过渡到独立进行程序编写。
2.5 采用“任务驱动”和“案例驱动”相结合的教学方法
任务驱动教学方法是以建构主意的认知灵活性理论为基础的一种教学方法,将教学内容设计成学生感兴趣的具体任务,整个教学过程中,以完成任务为主旨,把相应的语法和知识点贯穿在整个任务中,让学生自己提出问题,借助教师的引导,自己解决问题。如:在讲授循环结构时,先把循环结构的三种形式涉及到的相关知识简单讲授,然后让学生完成任务:采用while循环、do-while循环和for循环分别来完成求1~10这10个整数的和。在整个过程中,学生不仅会学到三种循环结构的使用方法,还能通过具体任务了解到while循环、do-while循环在初始条件不满足的情况下,二者的循环过程的差别。通过任务驱动教学法,不仅激发了学生的求知欲,也培养了学生的自学能力。
案例驱动教学法是一种在教师的指导下,先通过对典型案例的分析,组织学生进行学习、探索与研讨,得到解决问题的方法。
这两种方法的结合,不但让学生更扎实地掌握基本的知识点,还能使学生举一反三,进一步了解和掌握相同案例的解决方法和思路,从而完成学习过程的方法。
2.6 针对不同水平的学生分层次教学
由于目前各大高校面向全国招生,不同区域的经济发展水平存在一定的差异,导致教学设施和教学方法也不尽相同,因此学生的生源质量也有很大的差异。这个问题是教学过程中必须面对的一个难点。解决这个问题,个人感觉可以从以下两点入手:
1)互帮互交。让基础比较好的学生来帮助基础弱的学生。教师要对帮教者进行一定的鼓励,充分调动帮教者的积极性。同时也要督促受帮助者虚心学习,力求上进。这样不但可以提高双方的学习水平,还可以增强同学间的友谊。
2)教师要根据课堂气氛、学生反映能力,适当调整教学进度。对于一些难以理解的问题,要放慢速度,精细讲解。对于某些知识点,可以先跳过,以后再讲,不一定按照教材章节顺序讲解。对于教材里涉及到的一些比较深奥的程序示例以及一些在实际编程中很少用到的语法语句,可以少讲或不讲。这样可以减轻学生学习的难度,激发学生的学习兴趣。
2.7 理论与实践相结合
《C语言程序设计》这门课是实践性比较强的基础性课程。学习这门课,不仅是对语法知识的掌握,更重要的是要学以致用,利用所学到的知识编写程序解决实际问题。因此,学生在学习的过程中,要合理安排上机时间。在上机的过程中,首先要熟悉C语言的编译环境,如:Turboc 2.0或者Visual C++ 6.0等,掌握程序的编写、调试、运行的具体操作和命令。其次对于同一个问题,要让学生练习使用多种不同的编程方法来解决,并且能够成功运行,在编程过程中,对于出现的问题,教师尽量给予提示,启发学生自己思考解决问题。这样不但能培养学生的动手能力,还能培养学生独立思考的能力,把理论课上学到的知识成功应用于实践,提高学习的质量和效率。
3 结束语
《C语言程序设计》这门课的教学涉及到多方面的因素,需要教师在教学的过程中不断探索新的教学方法。只有选择合适的教学方法,才能激发学生的学习兴趣,使学生不但掌握编程语言的基本理论知识、编程技术和基本算法的实现,更重要的是让学生掌握程序设计的思想和方法,具备利用计算机来求解实际问题的能力,为以后学习更专业的程序设计语言奠定基础。
参考文献:
[1] 谭浩强.C程序设计[M].北京:清华大学出版社,2000.
[2] 曲俊华,林碧英.计算机基础与程序设计[M]. 北京:中国电力出版社,2000.
[3] 马骕.关于我校非计算机专业C语言教学改革的探讨[J].科技向导,2011(3).
[4] 赵阿可,刘世江.《C语言程序设计》教学方法的探讨[J].价值工程,2011(16).
[5] 康振.关于C语言程序设计教学方法的探讨[J].辽宁教育行政学院学报,2010(2).