C语言教学改革探讨
赵国磊
摘 要 本文从当前C语言教学现状出发,分析了当前教学中的学员特点、教学内容、教学方法和上机实践等方面存在的问题,针对这些问题提出了具体的改革措施,并在教学实践中加以运用,取得了较好的教学效果。
一、引言
C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,同时具有高级语言与低级语言的许多特点,因此特别适合于编写系统软件[1]。以上的特点决定了C语言本身的复杂性且难以掌握,结合多年来的科研和教学实践,以提高学员程序设计能力为最终目标,探讨该课程的教学改革措施。
二、当前教学中的问题
(一)学员情况
在当前的教育模式下,很多学员习惯了应试教育,学习时缺乏主动意识,不能主动思考,但C语言是一门实践性很强的课程,如果学员不能主动去发现问题、解决问题,最终很难掌握该语言,不能利用C语言去编程解决实际问题。另外,当前学员对该课程的认识不足,不能认识到该课程对于后续课程学习的重要性,把其当做一门需要考试通过的普通课程,为了学分而学习。
另外,在实际教学中,很多学员反映C语言很难学,而这个“难”主要是从其他人对C语言的评价中获取的,这在一定程度上削弱了学员学好该语言的信心。
(二)教学内容
传统的C语言程序设计教学主要侧重理论知识的讲授,讲授更多的是概念与语法,但对于这些知识背后的“为什么”,以及如何运用所学知识编写程序却较少提及,此时,C语言程序设计课程的教学内容只是讲授C语言本身。
(三)教学方法
当前C语言的教学中,更多采用的是填鸭式教学,课堂教学主要是知识点的堆砌,概念的罗列与解析。为了在规定时间内完成既定的教学任务,即使讲解例题时能够按照提出问题、分析问题、解决问题的方式去讲授,但从时间上,中间留给学员思考的时间较少,学员最终无法主动地去接受知识。
(四)上机实践
当前的上机实践主要是对书本知识点的练习,侧重基本语法,解决的问题比较简单,编程过程中主要使用基本语句,完成程序规模非常小,一般有几十行,最多不过几百行,与培养和提高学员编程能力的目标较远。
三、教学改革探讨
(一)强调课程重要性,树立学习信心(www.xing528.com)
在大学本科的学习中,学习好C语言能够更好的学习其他后续课程,提升对计算机的认识,因此必须向学员强调C语言的重要性,让学员从思想上认识到学习并熟练掌握C语言的重要性。
对于初次学习编程的学员,不论是何种语言,他们都会感到比较难,主要是因为学员没有学习过计算机语言,没有建立起对计算机语言程序设计的基本认识和实践体验,但是任何一门知识的学习都是从简单到复杂的,只要能够循序渐进,合理安排教学内容,采用适当的教学方法,学员一定能够顺利建立起对语言的认识,其畏难情绪会逐渐消退,信心会自然树立起来。
C语言是一门编程语言,就知识本身的难度与抽象性而言,其与高等数学、概率论等相比,其难度小,抽象性低,只要学员能够放一定的时间在该课程的学习上,就一定能掌握该语言,因此在教学中要反复的向学员强调,甚至于灌输C语言比其他课程易学的理念,让学员树立信心。当然,信心的建立必须与合适的教学方法相结合,否则学员更难建立信心。
(二)减少理论知识讲授,增加实例分析
C语言课程的教学目标不仅仅是使学员了解和掌握C语言本身,而且应该使学员深入掌握程序设计的思路和方法[2]。在课堂教学中,应侧重编程能力的培养,而编程能力培养主要是程序设计思维的训练,所以课堂讲授中应更多的提出问题、分析问题、解决问题,并将问题转化为程序,基本语法知识的讲解可以自然的融入到一系列问题处理的过程中,这样学员能够在主动思考中理解理论知识的本质内涵,起到事半功倍的教学效果。
C语言中有很多概念、语法和规则,对这类知识的学习和理解是比较容易的,只要讲述完一个,其他类似的知识点完全可以由学员在课下自学完成,没有必要逐个讲解。以C语言中的算数运算符为例,“+”表示加法运算,加法运算讲述完毕后,其他运算符号学员自学即可。
任何知识的学习,不但要知其然,还要知其所以然,这样才能使人更好的理解、掌握和运用知识,所以必须要将关键知识的所以然讲授给学员。在C语言中很多机制的设计有其原因,而这对于理解语言,掌握知识点,深刻体会语言本身有很大的促进作用,讲课时必须将背后的原因讲授清楚,否则学员为知识点而学习,很难从宏观上去观察思考语言本身,不能得到本质性提高。
(三)启发式教学,发挥学员主体作用
在C语言的教学中,必须时刻以学员为思考的主体,让学员积极参与到问题中去。教员在授课时必须遵循提出问题、分析问题、解决问题的方法。
在备课时教员必须精心设计问题,该问题巧妙涵盖该课所需讲授的主要知识点。讲课时,将问题抛出,与学员一起讨论分析问题。分析过程中,学员是思考的主体,教员的任务是积极引导学员,当讨论方向出现偏差时及时纠正。该分析过程必须占用课堂教学的大部分时间,否则学员根本无法主动思考。当问题分析完毕后,一起与学员将分析结果汇总,将分析变为算法,最后将算法用程序清晰的进行描述,在写程序的过程中,对相应的知识点进行讲述,学员能更深刻的理解知识点的内涵与用途。学员在整个学习过程中,非常自然的掌握了知识点,锻炼了分析解决问题的能力,掌握了程序编写的技巧。
以循环体的教学为例。让学员用手工的方法去计算1到100的和,强调不能使用等差数列方法去解决,即只能使用最原始的逐个相加的方法来进行,然后学员会手工逐个计算,大约10个步骤时终止该手工计算过程。此时该问题的目的已经达到,一起与学员反思该计算过程。反思过程以学员为主体,教员负责提出问题引导讨论方向。首先,让学员说出手工计算中参与的物体,经过讨论会得出人脑、纸、笔、手、眼睛等。然后,让学员试图去对应电脑中的计算部件与操作,在教员引导下,会得出人脑相当于CPU,纸相当于内存,笔与手的写操作相当于内存赋值操作,眼睛的读相当于CPU对内存的读操作等结论。此时,可以将计算中需要的变量与运算进行抽象,依据手工计算,写出基本的程序框架,该程序此时无法采用循环,只是对手工计算的模拟,会使用很多变量。然后再次引导学员去思考内存的特点,如内存可以反复赋值等,引导学员去重用变量,减小内存占用。最后,对计算过程再次进行抽象,让学员自己得出每次计算的共同点与不同点以及计算的起始点与终止点,此时可以适时地抛出for循环语句,利用for循环语句重写计算程序。在上述过程中,学员不但能够很好地理解for语句本身,而且在分析思考的过程中,深刻认识了计算机运算的本质过程,巩固和加深了对变量的认识,经过该讲解,while循环完全可以由学员自学完成。
(四)增加上机实践难度,提高实际动手能力
C语言是一门程序设计语言,掌握该语言需要大量的编程,只有在反复的编程训练中才能提高对C语言的认识和对程序设计的理解。因此,在上机实践中,应该提高编程的难度与规模,只有这样才能使用到C语言里很多精巧微妙的功能,深刻地体会与理解C语言。
四、结论
上述教学内容、教学方法、上机实践的教学改革是结合自身学习使用C语言的经验,根据多年教学实践中存在的问题提出的,并且在教学中进行了大胆的尝试。实践证明,不仅提高了学员学习C语言的信心,培养了学员编程实践的能力,加深了学员对程序设计的认识,更深刻地认识了计算机的本质,而且取得了较好的教学效果。
[1]谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.
[2]尹宝林.“C语言程序设计”课程建设的思考和实践.计算机教育,2009(23).
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。