本书由两位知名的计算机科学教育家编写,全面而细致地介绍了计算机科学的各个方面。书中,计算系统的每个分层都以剖析,从住处层开始,历经硬件层、程序设计层、操作系统层、应用程序层的通信层,最后讨论了计算的限制。此外,正文中穿插了大量的人物传记、历史注释、道德问题和最新的技术发展信息,有助于你进一步了解计算机科学。每章后面都附带有大量的练习,可以帮助你即时重温并掌握这一章所述的内容。本书是计算和计算机科学引论课程的理想教材,对于想要了解计算机科学概况的非专业人员,本书也是一个很好的选择。本书前言为了制定这本CS0教材的论题大纲,我们利用了许多资源,包括课程目录、教材大纲以及一个email调查问卷。设计这个调查问卷的目的在于了解我们的同事对这门课应该包括哪些内容的想法。我要求他们和自己列出下列三种清单。*如果CS0这门课是学生在大学阶段学习的唯一一门计算机科学的课程,请列出四种你认为他们应该掌握的论题。*请列出四种你想要学生在进入CS1这门课之前掌握的论题。*请补充四种你想要学习CS1的学生熟悉的论题。这些资源的交集反应出的大多数人的意见构成了本书的大纲。在学习CS1之前掌握了本书内容的学生将为继续学习计算机科学打下坚实的基础。尽管我们的意图是编写一本CS0教材,但是许多评论家都认为本书的覆盖面非常广泛,可以作为一种程序设计语言的计算机科学导论的参考书。结构说明在第1章中,我们介绍了硬件和软件的历史,并且用洋葱的结构来类比计算机系统的结构。计算机和它的机器语言构成了洋葱的芯,软件层和更复杂的硬件一层层地裹住了这个芯。首先介绍的是机器语言,然后是高级语言,包括FORTRAN、Lisp、Pascal、C、C++和Java。在介绍这些语言的同时,还介绍了利用它们进行程序设计的过程,包括自顶向下的设计和面向对象的设计。我们对抽象数据类型及其实现所扮演的角色的理解已经成熟了。操作系统和它的资源管理技术(包括更大、更快的二级存储介质上的文件)包围着这些程序,并对它们进行管理。接下来的一层由更复杂的通用或专用软件系统构成,它们覆盖了操作系统。这些功能强大的程序由计算机科学中的并行理论支持。最后一层由网络和网络软件构成,网络软件包括计算机之间通信必需的所有工具。Internet和万维网给这一层画上了最后一笔。当这些层随着时间的流逝逐渐增长时,用户对计算机系统的硬件接触得越来越少。每个层都是它下面的计算机系统的抽象。随着每个层的发展,新层的用户和内部层的用户联合起来,在经济领域的高科技部门创造了大量的生产力。本书的目的是提供各个层的概述,介绍基础的硬件和软件技术,使学生了解和欣赏计算系统的方方面面。在介绍这种洋葱式结构时,我们有两种选择,一种是从内向外逐层介绍,另一种是从外向内进行介绍。从外向内的方法看来非常吸引人。我们可以从最抽象的层开始介绍,一次剥掉一个层,直到具体的机器层为止。但是,研究表明,比起抽象的例子,学生们更容易理解具体的例子,即使他们本身是抽象思想家。因此,我们选择从具体的机器层开始,按照层的创建顺序进行分析,当学生完全理解了一个层之后,再转移到下一个层就比较容易。第2版中的变化一本全新的书的第1版就像一艘新船的试航。如果设计足够好,那么就只有一些小问题需要调整。当这本书成了旧的,它未来的版本可能会要求全面修订。幸运的是,我们的读者认为这本书的设计是稳定的,在这一版中,只需要进行一些改动。我们更新了一些传记,把旧的轶闻趣事换成了新的,而且还使“道德问题”部分反映的是当前的问题。我们将在下面的摘要中指出内容的变化。除了内容的变化,我们还修改了练习。练习中的问题被分为两类,即主观题和客观题。许多教育者认为客观练习(包括多项选择、对错判断和填空)是无用的。但是,根据伊利诺伊大学的测试和评估部的研究,主观测试和客观测试可以衡量相似的内容和学习目标。根据两项相隔42年的研究,学生对短文和涵盖相同内容的客观测试题的反应几乎完全一样。因此,我们决定同时采用客观题和主观题。每一章都有多项选择题和判断题,还有简答题和需要解决方案的问题。对于大班来说,讲师可以利用这些问题快速地设计出小测验。