C语言程序设计课程教学方法的探讨

2009-02-24 07:02
计算机教育 2009年2期

王 冰

文章编号:1672-5913(2009)02-0142-03

摘要:本文探讨并提出了C语言程序设计课程的一种新的理论教学和实践教学的方法,该方法能增强学生对本课程的兴趣以及提高教学质量,提高学生用C语言解决实际问题的综合能力。

关键词:善于培养兴趣;善于总结归纳;善于互动交流;善于发现问题;善于合理施压

中图分类号:G642

文献标识码:B

1引言

我院C语言程序设计课程是面向非计算机专业本科生开设的,是计算机基础系列课程中的一门,属于公共基础课,也是计算机基础系列课程中的基础课,很多后续课程如计算机软件技术基础等都以该课程为先修课。这门课程的教学目标是使学生较全面、系统地理解和掌握程序设计的基本概念和方法,具备运用程序设计语言、数据结构和算法进行基本的结构化程序设计和面向对象程序设计的能力。通过本课程的学习培养学生利用计算机处理问题的思维方式,启发学生主动将计算机引入到其他基础课和专业课。很多大学生在大学四年的学习过程中都会选修这门课程,来提高自己的计算机编程水平。

在学习这门课程的过程中,教师要在课程规定学时内讲解C语言的语法和语义以及这门语言方方面面的规定,学生不但要在较短的时间内记住大量琐碎的知识点,还要经过知识的日积月累,能灵活运用这些知识点,融会贯通,达到由能编程序解决简单问题到能编程序解决复杂实际问题的过渡,进一步能和自己所学专业知识有机结合。由于计算机技术的发展和普及,学生脑海中对学好计算机技术的重要性还是有清醒的认识的,在开始学习这门课程时,兴趣还是很高的,但是如果教师在教学过程中只是照本宣科,理论脱离实际,一味“填鸭式”灌输,学生就会逐渐感觉到学习这门课程内容条条框框的枯燥。学生的学习兴趣就会在学习过程中随时间而减退或消失,这样一般就都难于取得好的教学效果。经过几年的教学实践、观察总结以及研究尝试,本文针对以上问题,总结提出几点建议来改善课堂教学和实验教学的效果,与大家共勉。

2教学方法的探讨

(1) 善于培养兴趣

爱因斯坦有句名言:“兴趣是最好的老师。”古人亦云:“知之者不如好之者,好之者不如乐之者。”兴趣对学生的学习有着神奇的内驱动作用,能变无效为有效,化低效为高效。充分激发学生的学习兴趣是当前开展素质教育,优化课堂教学,减负提质的最根本、最有效的途径之一。兴趣的产生来源于兴趣源,兴趣源必须由教师来创造,并贯穿于教师授课全过程的各个环节中。针对C语言程序设计这门课程的特点教师可采用以下方法提高学生的对本课程的兴趣。

首先,教师可以在讲授第一次课时,就演示一两个用C语言来解决某个实际问题的综合程序,吸引学生的眼球,当然这些演示的综合程序要教师预先精心设计好。比如“职工档案信息管理系统”、“实用的小型通信录”等,这样来引起学生对学完本课程后自己所具有用C语言编程能力的憧憬。

其次,课堂上讲解某个重要的知识点时,可以不失时机地展示给学生一两个运用此知识点开发好的用于解决某个问题的小程序或是游戏程序,让学生感受到编写出的程序的魅力,提高学生的听课注意力,激发学生主动学习的积极性。例如,在讲解了程序控制结构的选择和循环两种结构后,可以演示一个利用此知识点的程序,比如“使用菜单选择趣味程序”,来展示所学的这两种结构在程序中是如何发挥作用的。当然有些程序因涉及的知识点多,学生全面理解有时有困难,教师要适当选择和灵活掌握,搞清演示程序的目标是什么,是为引起学生的兴趣,还是要通过此案例详细讲解某个知识点。

再者,课后要针对本节课所讲的重点知识留些思考题和随堂提问。孔子说:“学而不思则罔,思而不学则殆。” 教师要多提出“…可否?”、“如果这样编写…行吗?”、“程序为何这样写?”,“结果为何这样?”“你将如何编程实现?”等问题,充分发挥学生的想象力和创造力,培养学生的开拓精神和独立解决问题的能力。例如switch语句的语法结构中如果没有break和default语句对switch语句所表达的语义有何影响?自己编写了一个与printf同名函数可以调用吗?等等。

另外,在实验教学中,老师在布置作业时一般要难易适当,使学生在经过努力后,基本都能编程实现,这样学生编完程序后就有一种成就感,这也是提高学生对本课程兴趣的好办法。如果作业太简单,学生轻松实现,印象不深,成就感不强烈,觉得太容易,没有兴趣。如果作业太难,学生难于实现,就会出现放弃或抄袭现象,也会丧失学习本课程的兴趣,更无从谈起学生的成就感。

总之,教师要善于不失时机的运用各种方法培养学生对课程的学习兴趣。

(2) 善于总结归纳

教师在讲解相关章节时,应善于对学生已学过知识点的进行总结。眉毛胡子一把抓,学生就会觉得要理解和记忆的内容太多,感觉无从下手,所以教师要善于给学生归纳总结所讲解的知识点,便于学生加深对相关知识点的理解,提高学生对知识的记忆力。

首先,要注意相关知识点的融会贯通。例如,在C语言程序设计这门课程中,涉及到算术运算符、赋值运算符、关系运算符、逻辑运算符、自增自减运算符、条件运算符、取地址运算符、逗号运算符等很多运算符,这些运算符之间不但存在优先级的高低问题,而且同级之间又存在结合性的左右结合问题。教师在讲授课程中,每讲到一种新的运算符,就将其与前面学生已学过的运算符做一个优先级和结合性的比较,这样就如同滚雪球一样,随着授课进展,最后将本课程中所有涉及到的运算符的知识点全部联系到一起,学生在学习过程中既学到了新的知识点同时又复习了旧的知识点。另外,通过把已学到的运算符进行归纳,也达到了知识点强化的目的,便于学生的记忆和理解。

其次,每个章节讲解后,教师都应归纳本章节学生应要掌握的知识点。一般在每个章节讲解前教师要明确本部分内容要解决的主要问题,因为学生这时还没有学习这部分的具体知识,对所涉及知识点的讲解一般不宜太细,主要以明确解决的问题为目标。在每个章节讲授完成后,教师应及时地归纳总结本部分所涉及的知识点,以便于学生在课后有的放矢地复习巩固。

再者,在实验教学中,注意总结归纳,让学生上机少走弯路。编程容易,调试难。因学生理论知识接受能力和掌握程度的不同,学习认真程度的差异,C语言自身的特点等原因,即使要解决同一个问题,学生解决问题的设计思路也会不同,学生编程所用C语言的语句也会有差异,所以学生编写出来的程序千差万别,遇到的编程问题,出现的编译、链接和运行错误也千奇百怪。有些问题和错误只是个别学生出现的,但是也有许多是学生遇到的共性问题和错误,教师在辅导上机实验时,要注意区别对待。对于共性的问题和错误,要进行归纳总结,课上给学生展示错误并及时讲解解决办法;对个别学生出现的问题和错误,教师要单独辅导讲解。

另外,教师在讲授一门课程的过程中,应及时将学生不易理解的问题、上机实验中经常出现的错误进行总结归纳,这样日积月累,经过对同一门课程的几轮授课,教师就可以形成针对本课程的问题库。在下一轮授课过程中,教师就可以有的放矢地对以前授课中学生不易理解的问题重点讲解;就可以目标明确地对上机实验中经常出现的错误,在学生上机之前用案例演示并提出解决方案,以免学生再犯同样的错误,让学生少走弯路。

总之,教师要充分利用总结和归纳的方法来提高学生的知识点的理解和记忆。

(3) 善于互动交流。

在讲课过程中,教师要精心设计教学环节,环环相扣,要善于提出问题与学生互动,努力创造一个和谐的教学环境。教师可以采用以下方式与学生交流互动。

首先,采用不定时随堂练习的办法。在讲授某个知识点后,教师及时出一道小题目,随堂练习此知识点的使用,每个学生做完后,将答案及时上交。这样一举三得,既增强学生对所学知识点的巩固,又了解学生上课出勤的情况,同时一定程度上也避免了学生逃课、旷课现象的发生。

其次,采用错误案例教学的办法。“吃一堑,长一智。”人们对事物的认识和认知,有时出错、碰壁比不犯错误、一帆风顺更能增加对事物的印象,更容易记住。有时教师在讲解一个例题时,在容易出错和模糊的知识点处故意沿着错误的方向讲解,然后询问学生这样做或理解对吗?看看学生能否发现问题或错误,这便于教师掌握学生对知识点的掌握程度,同时也使学生加强对知识点的印象。

再者,采用上课适时点名提问问题的方法。一方面,虽然上课点名提问问题表面上是在检查某个学生,其实此时也是在检查全班学生,因为教师问题提出后,所有听课学生在没有确定老师点名提问谁之前,都会集中注意力,抓紧时间思考,这可作为提高学生听课注意力的方法。另一方面,上课点名提问问题也是对学生所学新旧知识点的检查和复习,以便教师确定下一步的授课进度安排。

另外,采用上课过程中学生可随时提问问题的方法。上课的过程中要允许学生随时提问问题,学生有不明白的地方,可以举手提问。因为如果学生不能马上把不明白的问题提出来,可能影响其后续听课接受新知识。同时,虽然别的学生没有提出来此问题,但也很可能没有听明白,所以要允许学生上课时及时向教师提问问题。

总之,老师要努力创造一个互动交流的和谐授课氛围。

(4) 善于发现问题

“当事者迷,旁观者清。”教师一般授课前对所讲课程都是精心准备的,在讲课过程中,自我感觉一般都是不错的。但是学生听课效果如何呢?这决不是教师自己感觉良好,就良好,那是掩耳盗铃,自欺欺人。在教学过程中,老师要多和学生进行交流,向学生征求授课中所存在的问题和意见,请学生给老师指出教学中所存在的问题,教师及时改正。

首先,教师可以采用课间或课后和部分学生交流的方式。为了消除学生给老师提建议的顾虑,也可以采用无记名的交字条的方式进行。学生还可以给老师发送电子邮件,随时可以把自己的意见和建议反映给老师。

其次,教师更要倾听教学督导老师的意见和建议,努力提高自己的教学水平。教学督导老师一般都是具有多年授课经验的老教师,他们授课经验丰富,看问题比较准确,教师要多和督导老师交流,虚心听取他们的意见和建议,发现问题,及时改正。

再者,“三人行必有吾师。”无论你与其他教师是否教授同一门课程,每位教师授课都有其特色,我们要积极认真地去听其他教师的授课,“取人之长,补己之短。”这样我们才能进步。

总之,教师要通过不断综合学生和教学督导老师意见和建议以及其他教师的教学特点和经验来提高自己的授课水准。

(5) 善于合理施压

没有压力,就没有动力。施压,但不超压。现在大学生参加的课外活动多,个别学生混学分的现象存在,部分学生对选修课重视不够;再者,许多老师都知道,如果没有实际的问题需要解决,只是抱着一本书看看学学,简单练习练习,只编写针对各知识点的小程序,一般是不能把一门计算机语言的知识点融会贯通的,更无法把其学深学透学精。

在开始讲授C语言程序设计课程第一堂课时,教师可以在演示一两个用C语言编写解决实际问题的应用程序的同时布置一个综合程序设计大作业,比如“学生成绩信息管理系统”等,让学生带着压力和问题学习,将一个综合程序设计大作业的压力分散到整个学期的学习过程中,时时有压力,时时有动力,同时压力分散,压力强度不大。为避免抄袭拷贝、网上下载等现象的发生,可以在学期末拿出一定的时间进行课堂抽查(当然如果课时允许还可以进行全面检查),由老师对抽查学生所做程序代码,随机指定一段,让学生讲解,这样也可更好地督促学生学习。

3结束语

在C语言程序设计教学目标和教学任务确定之后,教师应对教材内容做到心中有数,对学生学习C语言的过程要充分了解,对学生学习中存在的问题必须有清醒的认识,要善于将以上“五个善于”有机结合应用,合理安排理论和实验教学环节,就一定能有效提高讲授C语言程序设计这门课程的教学效果。

参考文献

[1] 严悍,衷宜,赵学龙. 编程语言教学实践中QDeV方法探讨[J]. 计算机教育,2008,(5):56-58.

[2] 严悍,衷宜,张琨. Adept:启发程序求解能力的一种有效途径[J]. 中国当代教育,2006,(5):1-5.

[3] 陈龙猛,王保桂,李吉忠,于仁师. 大案例教学法在Visual Basic程序设计教学中的探究[J]. 计算机教育,2008,(5):59-62.