我从1981年开始教程序设计课,教过FORTRAN语言、BASIC语言、C语言、QBASIC语言等,一直采用谭浩强教授编著的书进行教学。有一次,地球科学学院请我给他们的研究生讲C语言,让我指定教材,我不假思索地立即提出用谭教授的《C程序设计》。因为我对谭教授的书特别放心。教师好教,学生好学,而且我估计学校教材科必定
一、适合于初学者
学生们都渴望学习C语言,但C语言牵扯的概念比较复杂,规则繁多,使用灵活,容易出错,所以初学时感到学习有困难。谭浩强教授编著的《C程序设计》一书的出发点定位在:“使初学者易于接受,即使是从未学过其他计算机语言的读者,也能看懂本书,并掌握其中的内容”。这是《C程序设计》在前言中就明确声明了的,事实上,谭浩强教授的书也实现了这一承诺。国内学习或使用C语言的人,许多是从这本书入门的。
二、难点分散,缩小台阶,循序渐进
由于C语言难学,因此许多学生事前就有了畏难心理。在C语言中,数据类型、运算符、表达式的种类的确繁多,谭教授刻意把算术型的数据类型、运算符及其相关的表达式作为一章先介绍,使读者学习起来感到没有像想象中那么难学。接着又教读者编写简单的C程序设计,学完第3章,读者就会编写简单的程序了,这使初学者看到了自己的“成就”,信心倍增,虽然也感到了难度,但台阶并没有自己所畏惧的那么高,因此也有了克服困难的勇气和思想准备。但C语言中,字符型与整型有内在联系,谭教授就改变他在其他语言(如FORTRAN、BASIC等)书中的写法,不把字符型作为一章单独讲述,而是放在第2章,与整型、实型数据一起介绍,使读者建立一个与其他计算机高级语言不完全相同的、完整的C语言的字符型概念。在读者会编写简单的程序后,该书又介绍了关系运算、逻辑运算、选择结构、循环结构、数组、函数等知识。这一段学习中,读者既学习了C语言的程序设计,又感到与其他语言有相似之处,因此学习是比较轻松的,由此也打好了C语言程序设计的基础。
在读者会编写基本的C程序后,谭教授开始介绍C语言的特色部分,如编译预处理、指针、结构体、共同体、位运算等,难度一点一点地增加。但读者已经上了学习C语言的“瘾”,也有足够的心理准备,在谭教授的生动的比喻和详尽的引导下,慢慢地钻研着C语言的“难点”。这种循序渐进的教学内容安排符合认知规律。
三、生动的比喻,详尽的引导
谭浩强教授的书,语言流畅,引导详尽,循循善诱。看他的书,似乎感到有一位教授在上课,有时向读者提示,引导进一步讨论下去;有时向读者提问,让读者自己去钻研。在难学的地方,插入了生动形象的比喻,使读者参照一个实实在在的例子,领会了一些难学的知识。譬如,在开始学习指针概念时,读者对“间接访问”难于理解,谭教授插入了一个比方:“将钥匙A放到另一抽屉B中锁起来,若要打开A抽屉,就需要先找出B钥匙,打开B抽屉,取出A钥匙,再打开A抽屉,取出A抽屉中之物,这就是‘间接访问’。”这使读者不仅理解了“间接访问”的概念,也加深了指针概念。这样的比喻在《C程序设计》中有许多。书中的例题也是很生动有趣的,譬如,用“兔子的繁殖”引出斐波那契数列,让读者十分难忘。
四、朴实无华
读者,特别是青年学生一族,他们追求C语言,但他们中的大多数人对计算机的硬件了解得不多也不深,也不一定是用C语言编写系统软件或商品软件,主要是用来编写解决实际工作问题的一般应用软件。因此,《C程序设计》特别适合上述的读者,朴实无华,没有追求“高、深、全”。它教读者登上C语言的快马,再扶他们一程。学的人有了基本功,就可以根据自己的需要,或者开发一些小应用软件,或者继续自学C语言的高级编程。教师的目的与本书的目标是一致的,就是培养学生的自学能力。
事实上,不仅是计算机专业,许多高校的非计算机专业也选用此书作为“C语言程序设计”课的教材。许多自学C语言程序设计的读者不约而同地选择它作为叩开C语言大门的入门书。因此,谭浩强教授的《C程序设计》一书对我国普及C语言程序设计起了很大的推动作用,功不可没。
最新出版的《C程序设计》(第三版)从内容到写法都更上了一层楼,我将继续使用该教材,并乐于将心得与大家分享。