在C语言教学中如何培养学生的动手编程能力

时间:2022-09-27 10:46:05

在C语言教学中如何培养学生的动手编程能力

摘 要:C语言是一门实践性非常强的课程,对于对口单招计算机专业的学生来讲,掌握好C语言的编程方法与技巧,对于将来升入高校进一步学习会带来很大的帮助。因此,身为一名计算机专业教师,要不断地探究与研讨怎样能切实有效地讲授课程内容,将理论与实践紧密结合,培养学生的逻辑思维和分析问题的能力,从而提高学生的C语言编程能力。

关键词:C语言;教学方法;趣味性;情境教学;实验教学

C语言是一种通用性计算机程序设计语言。对于学生来说,学好了C语言,再进一步深造C++/VC++,JAVA等语言,就有了坚实的基础。但目前很多学生在学习《C语言程序设计》后,感觉读程序还能凑合,编程则“难于上青天”,无从下手,部分学生仅仅是为应付考试而死记硬背程序,完全背离了中职教育的初衷。因此,在从事对口单招C语言教学中,我越发觉得对学生进行编程能力的培养是很重要的。结合近几年的教学实践,我觉得应该在以下几个方面重点培养。

一、上好第一堂课,诱导与激发学生的学习兴趣

如何上好第一堂课是至关重要的。因为学生都是初次接触C语言,C语言对他们来说是神秘的,“兴趣永远是最好的老师”,有了兴趣他们才会积极主动地去学习,所以我觉得第一堂课应为“趣味C语言入门课”。

1.明确C语言的地位

教师可以用最通俗的语言,以讲故事的方式向学生展示计算机以及程序设计的无穷魅力,让学生了解计算机对人类生活的影响,它是如何获得这种魔力的,程序设计扮演什么样的角色,程序设计语言是怎样的语言,怎样驾驭程序设计语言,从而成为“编程高手”等。

2.强调C语言的重要性

C语言是学生今后学好后续专业课的基础,比如数据结构、VB、VC++、JAVA等。虽然程序设计语言更新很快,但一旦真正掌握了程序设计思想和理念,具备了真正解决实际问题的能力,即使语言再更新但程序设计的本质是不会变的。

3.传授C语言的学习方法

C语言是一门实践性较强的课程,要理论联系实践,加强学生动手能力和解决问题能力的培养,在学习方法上给予学生指导,告诉学生如何自学、如何听课、如何动手实践,明确一点:“C语言不是看会的,也不是听会的,必须是亲自动手实践练会的”。从而强调实践的重要性。

二、以问题为核心组织课堂教学,采用灵活多样的课堂教学方法

C语言课堂教学应充分发挥其解决实用问题的导向作用,进行理实一体化教学,有机地将理论与实践结合起来,通过设计巧妙的教学内容,充分调动学生的积极性,让学生的思维围绕教师的思维而运动。要让学生感觉到所学知识能解决实际问题,通过一些有趣实用的例子去引导学生学习,在学生的思维中留下一定的期望与神秘感,促使学生驱动自己的好奇心,从而充分调动学生主动学习的欲望。

1.理论联系实际,激发学习兴趣

在教学中,我经常以讲故事、做游戏等形式,选取一些有趣的C程序经典例子穿插在课堂教学中,大大提高了学生的学习兴趣。

例如在讲函数时,如果直截了当引入函数的概念,就不会引起学生的兴趣,也不会让学生认识到函数在程序设计中的重要性。我从《三国演义》故事开始讲起,《三国演义》中有这样一段描写:懿问曰:“孔明寝食及事之繁简若何?”使者曰:“丞相夙兴夜寐,罚二十以上皆亲览焉。所啖之食,日不过数升。”懿顾谓诸将曰:“孔明食少事烦,其能久乎?”此话音落不久,诸葛亮果然病故于五丈原。“食少”可能因为身体欠佳,而“事烦”则纯粹是诸葛亮自己给自己套上的枷锁。他的行事原则就是“事无巨细”,“事必躬亲”,落得个手下一帮能人无从发挥,新人没有锻炼机会,自己却积劳成疾,最后“蜀中无大将,廖化当先锋”。从管理学的角度是极其排斥这种做法的,认为工作必须分工,各司其职,每人发挥专长。其中的思想,在程序设计里也适用。

自然而然地得出结论:程序设计就像一门艺术,主要体现在算法设计和结构设计上。就如同建筑,假如结构不科学,外表再华丽的大楼,也难逃倾覆的命运。对于一个软件项目来说,用户能看到的只有功能、界面、运行速度和价格等。虽然我们可以在main()里书写代码,完成全部功能,提供友好界面,保证运行速度并尽力压缩成本,但这样的main()就好比是诸葛亮,“事必躬身”,即便聪颖过人,也是“其能久乎”。这样的程序将带来一系列的弊端:稳定可靠较差、不可能精炼高效、不可能与时俱进、难以控制进度……

面对上面的诸多问题,该怎么处理?答案是:给程序一个好的结构!而函数和模块正是C语言为实现一个结构化程序的两样武器。当函数和模块在程序设计中的重要性解释清楚以后,学生才有兴趣和愿望去进一步学习如何定义和使用函数。

2.采用情境教学法,激发自主学习

让学习过程变得轻松有趣是激发学生兴趣的关键所在。C语言本身是一门极其抽象难懂的学科,把抽象的问题形象化,这样就能把学生的注意力集中起来,学习积极性调动起来,达到师生互动的效果。例如在讲数组的查找和排序问题时,由于算法往往比较抽象复杂,学生较难理解,教师不妨借助于多媒体课件生动的演示功能,或者干脆叫几个学生到黑板前面来,现场演示如何找到个子最高的学生,如何将他们按照个头高矮来排队,如何在队列里插入一位新同学,如何在队列里查找一位同学等等,这样,不仅不会让学生感到枯燥乏味,活跃了课堂气氛,而且还能给学生留下深刻的印象,使得原本枯燥的算法变得简单易懂。

3.采用“引申法”由浅入深,触类旁通

所谓“引申法”是指结合已经解决的问题,因势利导,引导学生在此基础上解决相关联的问题。如我在讲解利用for循环解决累加问题的时候,先举一个基本的累加题的例子:计算S=1+2+3+4+……+100,待学生掌握了解决问题的方法后,随即引申出一系列的问题:计算S1=1+3+5+……+99,S2=2+4+6+……+200,S3=12+22+32+……+102,S4=1!+2!+3!+……+10!等,这样类似的问题还有很多。“引申法”可以培养学生在程序设计方面的发散性思维,提高程序设计中的应变能力。问题是活的,但程序是有章可循的。最终使学生明白,语法是有限的,可解决的问题是无限的。只有在分析实际问题的基础上,以清晰的思路去设计算法,才能举一反三,以不变应万变。

三、重视实验课教学,提高学生动手能力

学习C语言程序设计应当充分重视实验教学。首先,教师在上实验课时尽量要求学生多编写程序,多上机调试程序,上机实验的主要目的在于让学生熟练掌握上机操作要领和调试程序技术,积累编程经验。其次,上机实验可以加深学生对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授比较枯燥又难以记住,但它们又很重要,通过多次上机就能自然地熟练掌握,通过上机来掌握语法规则是行之有效的一种方法。最后,学生在上机调试通过一个程序后,可以自行修改程序中某些关键部分,甚至故意设置一些障碍,观察和分析在不同情况下的编译和运行结果。事实证明,上机实验的重要性绝不亚于课堂听课,这是巩固和发展课堂知识的十分重要的环节。

我认为可以从以下两个方面加强训练:一方面是规范上机实践内容。可以专门设计一套完整的实验大纲,为学生的实践提供指导。同时,对实验报告进行规范设计。这种规范对于学生基本程序设计素质和良好的程序设计习惯的培养,以及科学严谨的工作作风的训练能起到很好的促进作用。另一方面是采用“实践―查漏―再实践”的方式进行上机实践。在平常实验过程中,根据教学对象的不同,相关课程精心设计几组不同类型的有一定综合性的问题作为实验题。不仅抓实验过程中的辅导,同时还抓实验前的准备工作和实验后的总结工作。要求学生每次实验前熟知本次实验的目的,认真编写程序,保证在实验时能做到心中有数、有的放矢,杜绝学生在上机时临时编写程序。实验过程中要求学生仔细调试程序,一周后给出一个示范程序(示范程序基本上采用面向对象的方法和思想来设计)。要求学生对照示范程序发现自己程序设计中的漏洞或不足之处,改进或完善示范程序,然后再修改、调试自己的程序。最后要求学生写出完整的实验报告,实验报告批改后,对学生的上机实验情况做及时总结,指出成功之处和不足之处。通过这种“实践―查漏―再实践”的方法训练,对实验问题的深入分析、剖析,避免上机的简单重复,有效地提高了学生的编程能力,以及分析问题和解决问题的能力。

总而言之,C语言程序设计的教学要讲究方法,通过这门课的学习,不仅要使学生掌握C语言的基本语法规则,而且要切实培养学生逻辑思维和动手编程的能力,培养学生的创新精神、团队意识,为学生提供更好的展示才华的舞台。

参考文献:

[1]谭浩强,张基温.C语言习题集与上机指导[M].高等教育出版社,1993.

[2]陈国英.提高计算机语言课上机实践教学的改革与实践[J].洛阳农业高等专科学校学报,2002.

[3]徐大华,南京农业大学工学院.程序设计C语言[J].教学思考与探讨,2010.

(作者单位 江苏省江阴中等专业学校)

上一篇:点燃“意外”的精彩 下一篇:我焊接,我思考,我进步