李 莉
摘要:本文对“C语言程序设计”课程的教学改革进行了深入的探讨,一切从学生的实际出发,把培养学生的抽象思维能力、解决实际问题的能力放在了首位。通过多种手段激发学生的学习兴趣,强调实践环节,给学生提供了自主学习的平台,收到了较好的教学效果。
关键词:程序设计;教学方法;教学手段
中图分类号:G642 文献标识码:B
“C语言程序设计”作为一门公共基础课程,是高校理工科非计算机专业学生的一门必修课程。通过该课程的学习,学生不仅要掌握C程序设计语言的知识,更重要的是要学会分析问题的方法,提高解决基本问题的能力和程序语言的应用能力,并为今后的继续学习打下良好的基础。
由于“C语言程序设计”这门课程的实践性较强,必须通过大量的编程训练,才能逐步理解和掌握程序设计的思想和方法,因此,怎样激发学生自主学习的兴趣,培养学生的实际编程能力是这门课教学改革应解决的问题。
1教材适合教师的“教”和学生的“学”
教学有两个方面,一个是教师的“教”,另一个是学生的“学”。“教”是为了学生能独立地去“学”,就像叶圣陶先生说的那样:教,是为了最后达到不需要教。教师不仅要研究怎么教,更重要的是要研究学生怎么学。教师备课一定是要“背”学生的,首先要看学生的基础是什么?学生要达到的目标是什么?其评价的标准也是以学生能够掌握为评判标准。
其实,学生都想学好“C语言程序设计”这门课,也想掌握一门真本领到社会上去竞争。但很多学生一遇到问题就退缩了,不愿意费太大的力气,而这门课恰恰又是需要通过大量练习才能入门的一门课。
感谢由谭浩强教授编著的《C 程序设计》这本书,为教师进行该课程的教学改革提供了一个很好的平台。该书不仅将复杂问题简单化了,而且可使教师根据不同程度的学生对内容进行取舍而不影响整个程序设计的思想和方法。该书符合学生的任知规律,将学习的每一个台阶变“矮”,并能够使人理性认识C语言。
我们在教学中考虑到学生学习的难度,分解讲解,从而使学生克服了畏难心理,觉得C语言并不难学。有些课上没有讲到的内容,学生也可利用教材自学。同时,根据该教材,我们制作了适合学生自学的助学系统。考虑到学生基础的差异,我们结合教材,编写了《C语言程序设计上机指导》,从而给学生提供了一个自主学习的平台,受到学生们的好评。
2培养学生的抽象思维能力
在进行“C语言程序设计”的教学改革中,我们思考了这样的问题:如果教师只是钻研教材,并让学生理解、记住其结果,那么,学生就会失去独立钻研和获取新知识的能力;每个学习“C语言程序设计”的学生将来未必都从事计算机编程;因此,我们把砥砺学生的抽象思维能力作为了改革“C语言程序设计”教学的方法之一。
首先,我们根据“C语言程序设计”这门课的特点,研究了谭浩强教授编著的《C程序设计》这本书是怎样引导学生完成抽象的认知过程并逐步提升的;怎样通过简单的举例和进一步的讲解,使学生理解抽象的数据类型、函数以及指针在构造抽象程序中的意义;并将研究成果应用在教学中,从而使学生学会算法抽象的基本方法,掌握程序抽象的思考方法。
实践中,我们采用程序设计和语言讲解并行的方法。首先提出用程序要解决的一个问题,找出解决问题的方法,讲解要引入的新的语法知识,给出算法并解释,最后编写出完整的程序,再上机实践。
3激发学生的学习兴趣,培养学生解决实际问题的能力
教学与科研在研究目的等很多方面一样,其本质都是为了实际应用,并且科研的有些方法也同样适用于教学研究,因此,如何强调实践教学都不为过,并把培养学生解决实际问题的能力作为“C语言程序设计”教学改革追求的主要目标,这也与谭浩强教授编著的《C程序设计》这本书的初衷相一致。至于采用哪种方法好,笔者认为,主要看是否适合学生。在这个问题上,只有适合不适合,而没有好坏之分。
对于所要解决的问题,首先引导学生仔细进行分析、对各功能模块进行抽象描述、画出解决方案的流程图、讨论并修改算法、最后再进行编程、调试,并得出正确结论,这是培养学生创造性地解决实际问题能力的必由之路。我们在教授“C语言程序设计”这门课开始时,就把本学期要做一个实用作品、期末要进行上机编程考试、作品及上机考试占期末成绩的比例、要求写实验报告等信息告知给学生,并在期中将所要做的内容确定下来。有的是老师指定内容,有的是让学生自己选题。有的教师采取一对一辅导,有的分成小组让学生讨论,教师在适当的时候给予指导。对于做得比较好的同学及时给予表扬,并让学生将思路讲给教师听;同时要求写出详细的注释,并在小组或班上讲解。这样做,可使部分学生的编程能力明显提高,并带动了很多同学积极参与讨论,激发了同学们编程的热情,课上和课下都有学生在讨论编程的事,班里出现了良好的学习编程的氛围。
但是,我们清楚地认识到:要普遍提高学生的实际编程能力目前还存在着很大的困难。教师在有限的学时内不仅要完成授课计划,还要利用很多的课余时间完成类似于课程设计的作品辅导,教师在肩负科研和教学双重任务,所教学生多的情况下,也只是尽力而为。因此,在实际实施的过程中,采取“先让少部分人富起来”的做法,教师对部分编程爱好者多进行辅导,让好一点的学生去帮助其他同学。虽然取得了一定的效果,但距离我们良好的愿望还相差很远,需要我们在今后的教学中不断地探索,找出普遍提高学生实际编程能力更好的方法。
4 “C语言程序设计”的教学改革
C++是从C语言发展演变而来的一种面向对象的程序设计语言,其主要特点表现在全面兼容C,并且支持面向对象的方法。目前,C++程序设计语言已经成为应用最广泛的面向对象的程序设计语言之一,全国计算机等级考试(二级)也已把它作为主要考查的语种之一。很多学生考虑到就业,也希望我们开设这门课。鉴于上述等原因,我们从教学改革的角度出发,在我校部分班级开设C++程序设计课程,先在部分班级试点,待积累一定的经验,时机成熟时再向全院推进。
“程序设计方法是不可选择或不可抗拒的时代潮流,只能在应用中领悟和熟悉,算法则需要比较深入的理论知识,必须经过严格的科学训练。” 我们在教学实践中,本着一个原则:不论是C程序设计还是C++程序设计,均把培养学生的实际编程能力作为教学目标。对于非计算机专业的在校大学生来说,学习C++程序设计是为了让学生了解面向对象程序设计方法,能够利用C++编写较大并相对简单的程序,为以后进一步的学习和应用打下良好的基础。
通过对所教学生进行实事求是的分析和估计,我们选用了谭浩强教授编著的《C ++程序设计》作为教材。之所以选用这本教材,主要还是想用容易理解的方法讲清楚有关的基本概念和基本方法。该教材前7章的内容是C++从C语言继承来的部分。由于教师都是初上该门课,感到完成整个教材,课时有些紧张,如果再加上实用作品设计,学生负担会太重。因此,我们在教学上着力于使学生对C++的全貌和作用有基本的认识,而不是注重语法中的细节,同时引导学生阅读实用程序,指导学生在学完课程后,编写完成一个较大的应用程序。
5结束语
“C语言程序设计”的教学改革是一项长期的任务,无论怎样改,都要从学生的实际出发,发挥教师的主导作用,调动学生学习的积极性,使学生有收获。教学千古事,得失寸心知。在今后的教学实践中我们还要不断地完善教学内容和方法,做到既有“法”而又无“定法”,真正提高教学质量。
参考文献:
[1] 高福成,潘旭华.“程序设计”课程教学方法与手段改革探讨[C].//全国高等院校计算机基础教育研究会. 全国高校计算机基础教育年会学术论文集.北京:清华大学出版社,2007:7-11.
[2] 李莉,樊英.面向应用改革“计算机基础”课程教学[C].//全国高等院校计算机基础教育研究会.全国高校计算机基础教育年会学术论文集.北京:清华大学出版社,2007:293-295.