APP下载

《C程序设计》的教学体会

2009-06-18

计算机教育 2009年12期

熊 颖

摘要:本文通过多年的教学实践,阐述选用《C程序设计》教材在教学中的两点体会,即程序设计课程应以培养能力作为课程设计目标;一本好的教材如何弥补课堂教学的不足。

关键词:C程序设计;程序设计教学;课程设计目标

中图分类号:G642文献标识码:B

程序设计教学普遍存在两个问题,一是教学以语言知识为主,培养学生的编程能力不足;二是教学学时少,内容多的矛盾。教材是教学指导思想、培养目标、教学要求、教学内容的具体体现,选好一本教材对提高教学质量至关重要。事实证明,谭浩强老师的《C程序设计》是一本教师好讲,学生好学的难得的好书。我校自开设“C程序设计课程”以来,谭浩强老师的《C程序设计》一书已作为第一门程序设计课程的首选教材。目前,每一届约有6000左右的学生采用该教材。通过多年的教学实践,以下就两个方面谈谈对《C程序设计》教材在教学中的一点体会。

1以培养能力作为课程设计目标

如何处理语言知识与编程能力的关系,这是《C程序设计》课程首先需要明确的问题。对于非计算机专业的学生,程序设计课程应以培养能力为教学目标。这种能力主要体现在两个方面,一是从分析问题入手,培养学生编写程序的能力;二是培养学生阅读程序的能力。

《C程序设计》一书的前言中明确地指出,在学校中,学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序。要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。《C程序设计》以“程序=算法+数据结构”为主线,算法贯穿于书的始终,循序渐进地介绍了十几种常规算法。为了适合从未学过程序设计语言的读者,第2章单独讲述算法的概念与结构化程序设计方法等内容,第7章之前介绍基于基本数据类型的算法。通过前6章的学习,初步培养了学生从分析问题入手,到算法设计的基本能力。第7、10、11章随着不同数据结构的出现,进一步介绍具有实际应用的常规算法。全书的组织结构,非常清晰地表述了算法在程序设计中的重要性。在大量的C语法中仍能突出主线,这一独具匠心的结构设计,是《C程序设计》一书在组织结构上的最大亮点。

《C程序设计》一书将程序语言的语法讲解与算法的分析有机地结合起来,使刻板的形式化的语法融入实用的解题过程。既有结合语法规则的基本例题,又能扩展到较复杂的算法,并通过配套教材题解与上机指导的使用,使学生既得到必要的编程练习,又学到更多的算法与编程技巧。程序设计是一门实践性很强的课程,衡量学习的掌握程度,不是看“知不知道”,而是看“会不会干”。因此,大量的例题和习题为提高学生的编程能力打下了坚实的基础。

从阅读清晰易懂的流程图入手,培养学生阅读程序的能力。养成按结构块阅读分析程序的习惯,这为阅读和理解较大规模的程序段奠定了基础。

2好的教材能弥补课堂教学的不足

目前,教学学时每年有递减的趋势,学时少、内容多、难度大的矛盾尤为突出。好的教材不但能全面、准确地体现教学要求,同时,对于课堂教学中的某些不足,通过学生自学教材很容易得到弥补。由于谭浩强老师编著的《C程序设计》一书的出发点定位在“使初学者易于接受,即使是从未学过其他计算机语言的读者,也能看懂本书,并掌握其中的内容”。这一点,无论对学生,还是对教师都受益匪浅。《C程序设计》教材通俗易懂,便于学生自学,符合学生学习计算机尽快进入角色的规律。 利用这一特点,对于语法较多的第3、4章,采用精讲多练的教学手段,通过一个“累加”算法的程序,让学生通过上机实习,学习这两章中繁琐的语法部分。这样,不仅能达到事半功倍的效果,还能有效地缓解了课时不足的矛盾。

《C程序设计》例子选择十分恰当,且富有哲理性和趣味性,内容前后安排合理,层次分明,由浅人深。先由例子引出,在解决问题过程中,自然得出了结论,学生便于接受,如百鸡问题、猴子选王问题等。本书使用了大量的形象比喻,加上严格概念,真正使科学通俗化。例如,第10章二维数组和指针的关系,是许多书都没有讲清楚的问题,往往一带而过,而谭浩强老师用一个恰当通俗的比喻,即班长、排长点名的方式,形象地说明了行指针与列指针的区别。又如第11章用幼儿园孩子手拉手散步为例,形象比喻指针处理链表的问题,对于链表的删除操作和插入操作也就不难理解了。在《C程序设计》这本书中有不少独到之处,这是智慧与劳动的结晶。书中的所举的每个例子,他都亲自上机调试,选择读者最易理解的方式。

从《C程序设计》可以看到谭浩强老师治学的严谨作风、处处为读者着想的负责态度,正如他说:“有时为了找到一个好的例子或一个通俗的比喻,要苦苦思索好几天,每一句话都要反复斟酌推敲”。这种全心全意地为读者服务的心,必然换来如今超过1000万册的发行量。我想,这正是我们选择此书作为学生的教科书原因所在吧。

参考文献:

[1] 谭浩强. C程序设计[M]. 北京:清华大学出版社,1991.

[2] 谭浩强. C程序设计[M].2版. 北京:清华大学出版社,1999.

[3] 谭浩强. C程序设计[M].3版. 北京:清华大学出版社,2005.