APP下载

《C程序设计》的创作和出版是社会的宝贵财富

2009-06-18薛淑斌

计算机教育 2009年12期
关键词:教学理念

薛淑斌 张 民

摘要:本文针对谭浩强教授所著的《C程序设计》发行量超过1000万册,在世界科技界创造了新纪录的现象。首先研究了其原因、规律和经验,并将它作为推动我国计算机基础教育发展的宝贵社会财富;其次探讨了教材编写,准确把握教材的任务和定位,有的放矢,以人为本,研究读者的认知规律;最后阐述了用读者最容易理解的方法进行叙述,善于把复杂的问题简单化,采用新的教学三部曲。以上都是经过实践证明为行之有效的经验。

关键词:C程序设计;教学理念;教学三部曲

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

由谭浩强教授著、清华大学出版社出版的《C程序设计》一书已累计发行了1000万册,在北京将隆重举行“《C程序设计》发行1000万册纪念会”,这是我国计算机教育界、出版界的一件大事,值得高兴和庆贺。我们是谭教授的读者和学生,对谭教授有较多的接触与了解,借此机会谈谈我们的看法。

1罕见的现象

回忆1995年,《BASIC语言》一书发行1000万册,在北京隆重举行了“《BASIC语言》发行1000万册纪念会”,党和国家领导人薄一波、雷洁琼、张劲夫、宋健、王光英、李沛瑶、卢嘉锡、杨成武等亲笔题词表示祝贺,李沛瑶副委员长和科协领导、张效祥院士等亲自到会祝贺。大家高度评价这一事件,认为是我国改革开放的一项成果,是我国科学普及的一个缩影,是对我国计算机教育与普及的重要贡献!

1998年,中国社会科学出版社出版了一本《知识英雄——影响中关村的50个人》。在介绍谭浩强的文章中有一段很长的副标题:“发行量过1000万册的书确属凤毛麟角,《BASIC语言》做到了。如果在美国,谭浩强一定是亿万富翁,可他满足于桃李满天下。中国信息产业发展如此之快,谭浩强功不可没”。

当时,很多人都认为《BASIC语言》发行1000万册是一件空前绝后的事。因为那时学习计算机大多是从BASIC开始的,可供选择的计算机书也很少,因此《BASIC语言》几乎成为唯一的选择。而如今计算机技术已大大发展了,人们学习计算机可以有多种入口,学习程序设计也有多种语言可供选择,而且计算机书籍品种繁多,百花齐放,与80年代的情况大不相同了。在这种情况下,《C程序设计》能再创1000万的纪录真可以说是奇迹!

北京三大图书市场之一的中关村图书大厦2008年底根据5年来畅销图书单品的销售排名,评出10种图书获 “最具影响力图书奖”,获奖图书中只有《C程序设计(第3版)》一书是自然科学类图书,其他9种全是社科类图书。

2008年,美国夏威夷州举行了一次IT教育的国际会议,谭浩强教授应邀参会。一位来自中国台湾地区的教授向各国专家介绍谭教授时让大家猜猜他写的书发行量有多大,让大家尽量往高处猜。有人猜100万,有人猜200万,最高猜到500万。当各国专家得知谭教授写的书光是单本书发行量超过1000万册的就有两本时,无不惊异万分,觉得非常了不起,纷纷争着与谭教授合影留念。

对此,谭教授很冷静地说:“那是因为中国人多啊!”他说是历史和环境造就英雄。这无疑是正确的,只有在我国实行改革开放和发展科技,才造就了这样的纪录。但是,机遇对每个人都是平等的,为什么在中国只有一个谭浩强创造了这样的辉煌?多年来《C程序设计》始终位于北京图书大厦“畅销书排行榜”的前列。全国出版的C语言教材超过1000种,唯有《C程序设计》一枝独秀,销量始终独占鳌头。这决不是偶然的,是有一些规律性的东西值得深入总结发扬的。

2明确的定位

任何作品都需要首先明确其读者对象,有的放矢,才能成功。谭教授把自己定位为计算机普及和计算机基础教育工作者,读者对象的定位是广大计算机的初学者和大学非计算机专业的学生,作品的定位是教材。教材不同于专著,也不同于技术手册。决不能把教材写成专著或手册。教材的任务是用读者容易理解的方法和语言介绍有关的基本概念、方法和应用。教材不能包罗万象,更不是愈深愈好。

近年来,谭教授深入分析了大学生学习C程序设计的目的和要求,认为对非计算机专业学生来说,学习C程序设计课程的目的主要是进一步了解计算机的工作方式,初步掌握程序设计的方法,为将来进一步的学习和应用打下基础。因此,对非计算机专业学生在大学期间学习程序设计的要求要恰当,不是越高越好。

谭教授历来主张教材要百花齐放,推陈出新。应当有不同的教材,让各校根据具体情况选择合适的教材。谭教授在出版《C程序设计》的基础上,根据不同类型的学校特点,又分别编写出了两种不同程度和特点的C语言程序设计教材,现在已形成一个C教材系列:(1)《C程序设计(第3版)》。内容详尽,讲解透彻,程度较深,适合基础较好、学时较多,要求较高的学校使用。(2)《C程序设计教程》。在《C程序设计(第3版)》的基础上删去一些不常用的部分和有关高等数学的内容,适当降低要求,使学习更容易,适合学时较少的学校使用。(3)《C语言程序设计》。内容更精练,适合应用型大学非计算机专业使用。谭教授还准备为高职高专学校专门写一套C教材,均由清华大学出版社出版,这些教材针对不同的定位,各有特点,都写得很好,很受欢迎。

谭教授强调,教材有5个要素:(1)准确定位。有的放矢,不要不问对象提笔就写。(2)内容先进。体现信息技术发展趋势。(3)取舍合理。该有的有,不该有的没有,不贪多求全。(4)体系得当。循序渐进,台阶要小,分解难点,正确选择典型任务,选好切入点。(5)风格优良。通俗易懂,例题丰富,易于理解。

谭教授提出,计算机基础的好教材应当符合以下几个条件:(1)符合实际,满足需求。(2)内容新颖,实用性强。(3)概念清晰,科学性好。(4)体系合理,逻辑性强。(5)例题丰富,有启发性。(6)通俗易懂,便于自学。(7)资源丰富,配套完善。这些都是谭教授多年编著教材的经验结晶。

3以程序设计为中心,算法和语法紧密结合

C程序设计课程的内容既包括C语言语法规则,也包括算法、数据结构和程序设计方法等多方面的知识,如果分别孤立介绍,会显得头绪很多,枯燥无味。谭教授在写《BASIC语言》时,就开始打破传统的介绍计算机语言的写法,把语法和算法结合起来介绍,取得成功,把原来枯燥无味的程序设计课讲得生动活泼,使学生学起来津津有味,轻松愉快地进入计算机的大门。许多人对此仍记忆犹新。

在写《C程序设计》一书时,谭教授进一步发展了《BASIC语言》的经验,并在国内最早建立起C程序设计教材的完整体系,至今为广大教材作者所沿用。

要编写程序,必须掌握语法,这是最基本的,否则编写出来的程序将错误百出。但如果孤立介绍语法显然枯燥无味,而且编程序的目的是为了解决问题,因此应学习有关算法的知识。谭教授把这二者紧密结合起来,而且结合得很自然。他的做法是:一开篇就介绍一个最简单的程序(输出一个句子),使读者首先看到的是一个完整的程序,而不是枯燥的语法介绍,这样就使读者感到C程序“原来如此”,不感到神秘和困难。然后以此程序为例,说明最基本的语法规则以及怎样使用,始终以程序为中心展开,这是本书的一大特点。

书中开始介绍的程序是很简单的,用到的语法规则也较简单。然后再介绍稍微复杂的例子,用到的算法逐步复杂,语法也逐步深入。例如,在数组一章中,既介绍了在C语言中有关数组的知识,又引入了利用数组实现排序和检索等算法,以编程为中心,把语法与算法紧密结合,同步发展,步步深入。这种做法,条理比较清晰,读者容易理解和接受。

目前,程序设计教学有不同的做法,相关教材也有不同的写法。有的以介绍语法为主,有的以介绍算法为主,有的以案例驱动,引入语法。不同方法各有特点和适用的对象,也各有需要研究的问题。例如,有些以案例驱动的教材,知识点分散零碎,缺乏相对系统性,或缺少分析归纳,没有很好地把理论与实际结合,学生不易掌握规律性。我们需要在实践中进一步摸索总结经验,应当提倡百花齐放,不拘一格,推陈出新,不断推动计算机基础教育改革的发展。

4不把简单问题复杂化,善于把复杂的问题简单化

谭浩强教授写的教材十分通俗易懂,原因在于谭教授善于把复杂的问题简单化,而决不把简单的问题复杂化。这是谭教授写书的最大特点。

C语言中概念比较多,有些概念很抽象,难以理解。例如“指针”是许多人学习C语言时的大难点。许多人看了多种C教材都搞不清楚,后来经人介绍看了《C程序设计》,就完全明白了。

谭教授善于把形象思维和逻辑思维相结合,在叙述问题时充分运用形象思维的方法,使读者很容易理解。例如,介绍直接访问和间接访问时,举了这样一个例子:为了开一个A抽屉,有两种办法,一种是将A钥匙带在身上,需要时直接找出该钥匙打开抽屉,取出所需的东西。另一种办法是,为安全起见,将该A钥匙放到另一抽屉B中锁起来。如果需要打开A抽屉,就需要先找出B钥匙,打开B抽屉,取出A钥匙,再打开A抽屉,取出A抽屉中之物,这就是“间接访问”。为了讲清什么是指针,书中以旅馆为例:每一房间有一房号,通过房号才能找到要找的房间,可以说房号指向房间,房号就是房间的指针。同样,通过变量的地址能找到所需的变量单元,所以,地址指向变量。因此,将地址形象化地称为“指针”。这样形象的介绍,使学生很容易理解。在此基础上,再上升到理论,准确建立有关概念。

在《C程序设计》中,常常可以看到这样的话:“有些读者以为是……其实这是错的,应该是……”。这其实是把学生的思想捉摸透了,顺着他的思路把他引导到正确的轨道。有些学生说,“我原来的确就是这样想的,谭教授怎么会知道我是这样想的?”。许多师生反映:看谭教授的书像看一封信一样亲切自然,好像作者在和你聊天一样,自然而然地理解和接受了,不像学其他课程那样费劲和枯燥。

谭教授常说一句话:“要换位思考,作者不能想怎么写就怎么写,教师不能想怎么讲就怎么讲,必须考虑清楚怎么讲学生才能明白,要设身处地考虑读者的困难,站在读者的角度提出问题,从专家的角度引导解决问题”。他常引用一句话:只有明白“不明白的人为什么不明白”的人才是明白人。这句像绕口令一样的话蕴涵着深刻的哲理,这就是以人为本的思想在教材建设中的体现。

5采用新的教学三部曲,符合人们的认知规律

长期以来,人们习惯采用“提出概念——解释概念—举例说明”的教学三部曲,其思维方式的特点是“先理论,后实际;先抽象,后具体;先一般,后个别”。10多年前,谭浩强教授根据计算机基础教育的特点,总结多年的教学实践,在全国首先提出了“提出问题---解决问题---归纳分析”新三部曲,其思维方式的特点是“从实际到理论,从具体到抽象,从个别到一般”,这是符合初学者的认知规律的,是一种可以普遍应用的新方法。

谭教授的做法是:每一个问题的提出,都应使读者感到有需要,使读者很自然地接受,而不是先介绍概念,再作说明和举例子。例如:在“循环控制”一章中,并不直接介绍循环语句,而是有步骤地引出循环,使读者感觉到“没有循环控制”不行。在该章的开头,有这样一句话:“在许多问题中需要用到循环控制。例如,要输入全校学生的成绩,求若干个数之和,迭代求根等。绝大多数程序都包含循环”,这样读者就会想知道怎样用循环去处理问题,不会觉得突兀或被牵着鼻子走。

又如在“数组”一章中,提出如果有30个学生的成绩,若用普通变量表示很不方便,可用 …, 来表示,用一个统一的名字代表学生的成绩,下标代表学生的序号,这就引出了什么是数组,然后提出“将数组与循环结合起来,可以有效地处理大批量的数据,大大提高工作效率,十分方便”。有了这个“引言”,再介绍在C语言中怎样使用数组,就顺理成章了。从这些具体的问题中可以看到作者的匠心,在每一个环节中都注意先提出问题,然后分析问题,设计任务,解决任务,总结规律,应用实践,举一反三。

这种新的三部曲近年来在计算机基础教育界已经得到公认,成为教学与教材建设的一个重要原则。许多教师说,这是一个有重要意义的创新,对计算机基础教育改革有现实的指导意义。近来,许多人爱用“案例驱动”方法,但是不能简单地把案例法当作一种万能药方。对于操作性的内容,使用案例法效果比较好,而对于基础理论性的内容,还不能得出用案例驱动效果一定好的结论。案例驱动是一种具体方法,不是一种通用理念。归根结底需要采用的应当是谭教授提出的新三部曲,这是一种思考问题的逻辑,是新的教学理念,在这种理念下,可以采用多种方法。

6把平凡的工作做成不平凡,与时俱进

谭教授从1978年起开始从事计算机基础教育,迄今已30年。30年前,计算机基础教育是一项不被重视的工作,无名无利,许多人不愿从事。谭教授率先投入这项平凡的工作,一干就是30年,以自己的行动证明计算机基础教育大有可为。他参加发起成立全国高等院校计算机基础教育研究会,带动了全国一代计算机基础教育工作者,把这项不被人看好的工作发展得热火朝天,成效卓著,这是大家有目共睹的。许多人认为,谭教授把平凡的工作做成伟大。

从1981年出版《BASIC语言》开始,他先后在中央电视台向全国观众主讲了BASIC,FORTRAN,COBOL,Pascal,QBASIC,C,Visual Basic等7种计算机高级语言。他(以及与人合作)已出版了150种计算机著作,主编了400多种教材,可以说已经功成名就,但他从未停止前进的步伐,始终与时俱进,不断学习。不久前,他还针对部分中老年知识分子不会使用计算机的现象,在《计算机教育》上发表文章《应当大力向中老年知识分子普及计算机应用》,呼吁全社会重视这项工作,并主编了《中老年知识分子学电脑丛书》,出版后反响很大。

凡是接触过谭浩强教授的人,都会感觉到虽然他已年逾古稀,但思维仍然很敏锐,接受新事物很快,讲话逻辑清晰,分析透彻。谭教授始终主张“不唯书,不唯外,不唯上,只唯实”,他很注意听取基层意见,注重调查研究,从实际出发提出问题,解决问题。几年来,他先后主持制订了《中国高等院校计算机基础教育课程体系》(CFC)和《中国高职院校计算机教育课程体系》(CVC),填补了我国在这两个领域中的空白,在全国影响很大。他在十多年前就提出了“计算机基础教育要面向应用”的思想,当时还引起争论,但今天已变成业界的共识。不少人在回顾这段历史时,都对谭浩强教授善于思考,实事求是,敢为人先,努力奋斗的精神留下深刻的印象。

近几年来,谭教授还回顾了自己一生奋斗的经历,总结出一个人走向成功应当正确处理好的十个关系,应邀在全国各高等学校作了230多场“怎样走向成功之路”的报告,听众超过15万人,在大学生中引起十分强烈的反响,许多大学生说“这是一次触及灵魂的报告”,有的大学生站着听了近三个小时的报告,这种情况在高校中是十分罕见的。

我们应当深入总结《C程序设计》的创作经验和谭教授的教育理念,把它变成全社会的财富,不断推动我国计算机基础教育繁荣健康地发展。

参考文献:

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

[2] 谭浩强. 年轻时期的锻炼使我终生受益[M]//陈希,杨振斌. 双肩挑50年——清华大学辅导员制度五十周年回顾与展望. 北京:清华大学出版社,2003.

[3] 王希仁. 教授计算技术的大师[EB/OL]. (1995-10-4)[2008-7-5] http://www2.ccw.com.cn/1995/38/134504.shtml.

[4] 张伟涛. 一只椽笔写春秋——记计算机教育大师谭浩强[J]. 人物,1999(5).

猜你喜欢

教学理念
初中思想政治课的教学有效性研究
民办高校应用型人才培养模式探析
构建优质高中数学课堂,实现活力教学
钢琴对环境污染的探讨
浅议课堂教学与管理的体会
探讨计算机网络课程专业知识与技能教学的方式
新课标下如何提高初中物理课堂教学的实效性
小学数学教学良好课堂气氛的创建初探
高中数学教学中的“情景—问题”教学模式研究
职业能力视角下的高职语文教学策略探讨