图书前言

第2版前言

第1版出版后,不时会有教师给我发邮件,觉得这本书很适合用作本科学生教材,向我要教学大纲、教学进度表、考核大纲和电子课件以作参考,我乐意和同行们互相交流。这本书从来就不以“计算机科学导论”作为目标。它不过是笔者从许多年讲授“计算机科学导论”课程的过程中提炼出来的一本讲义而已。这是在书名中刻意加上“教程”二字的原因。

本课程面对一年级新生,通常只安排四五十学时,对任教教师来说,挑战在于选材、组织和演绎。讲得太“写意”或者太“工笔”都不行,太专业或者太不专业也不行。

在笔者的教学生涯中,计算机科学导论教材经历了几次变化。最早一批着眼于计算机入门操作和应用,类似今天仍然常见的以“应用基础”或“文化基础”来冠名的那些书;后来的一批有点全面介绍学科内涵的味道了,多以浓缩手法把有关领域内容写成一章一节;再往后,国内外开始出现以叙述纲领统率内容的著述,如以“算法”作为纲领贯穿教材,比如笔者用“数据表示、数据加工表示、计算机系统”三条线索来展开内容。

近年来,这个题材的新作继续出现,董荣胜的《计算机科学导论--思想与方法》一书站在“学科思想、方法这个较高的层面”来介绍学科,以此给学生提供对学科的认知基础,著述自成一格。这本书值得有关专业高年级本科生或者低年级研究生,甚至“计算机科学导论”课程的任教教师一读。

从院校总体上看,一年级大学生的逻辑思维能力和对计算机的了解程度参差不齐。不论教师选择什么样的叙述角度和层次,都受制于面对“菜鸟”们的“平均”接受能力,并非能够天马行空的。教师传道、授业、解惑之际,一定要顾及受众的感受。否则教师自我感觉讲得“天花乱坠”,而学生的反应却是“不知所云”. 

这次修订增写了1.4节和第7章。希望学生在导论性课程中对学科能够有更全面的认知。大部分增加的内容可作为学生的阅读材料。但建议把7.2节列入教学计划。关于社会和职业的问题只由教师讲授,效果恐怕不会太好,应该设计更加生动的教学环节。

黄思曾2010年8月于康乐园第1版前言

“计算机科学导论”是大多数高等院校计算机科学与技术类专业学生必修的专业课程。课程讲授和计算机系统、计算机科学有关的基本概念,使学生对本专业的核心知识有全面的、概要的认识。

本课程的一种典型教学安排是每周课堂讲授3学时,14周共42学时。在较短时间内要完成覆盖面很广、内容极为丰富的专业知识教学,而又要使一年级学生能够理解,关键在于:

1. 要建立一个课程讲授结构体系;

2. 要把握好内容广度和深度的关系;

3. 要采用深入浅出的叙述风格。

笔者在中山大学计算机科学系任教多年,20世纪80年代负责开设本课程之后,一直是本课程的主讲教师。二十余年的教学实践中,笔者设计以“一个本质核心,三条内容纲领”来组织本门课程,使学生能够在短短的十几周里对计算机系统和计算机科学有入门性的、较全面的认识。

“一个本质核心”是指计算机的“数据处理”功能。

计算机是一种数据处理机器,计算机科学是使计算机完成各行各业、形形色色数据处理任务所需要的理论、方法和技术的知识集合。

“三条内容纲领”是

(1) 数据的分层表示方法学,其表示层次:

 现实世界的数据对象;

 数据结构和信息结构层;

 程序设计语言层;

 机器层;

 物理层。

(2) 数据加工的分层表示方法学,其表示层次:

 数据处理问题;

 解题模型;

 算法层;

 程序设计层;

 机器程序层;

 物理层。

(3) 计算机系统的构成(数据和数据加工表示方法的最终载体): 

 硬件系统;

 软件系统;

 网络系统。

本教材按照上述纲领展开,包含了后续各门计算机类专业课程的主要概念,从而使学生对计算机科学的内容及其内在的关联有全面、清晰、概要的认识。

教学实践表明,本课程的学习能够激起学生新的问题和思考。课程结束后,学生的疑问通常会比课程开始前还要多。这是好事,说明课程为学生后续的专业学习奠定了良好基础,真正起到了“导论”应有的作用。

历届学生都表示,通过本课程的学习,他们清晰地了解到今后几年里要学什么,毕业之后会干什么,心里开始踏实。说明本课程还应该担负起学生专业教育的作用。

由于计算机技术发展十分迅速,作者水平所限,书中难免有错误和不足之处,期望读者在使用过程中给予指正。

黄思曾2007年5月于华软园