计算机科学概论(原书第7版)
作者 : [美] 内尔·黛尔(Nell Dale)/得克萨斯大学奥斯汀分校约翰·路易斯(John Lewis)/弗吉尼亚理工大学 著
译者 : 吕云翔 杨洪洋 曾洪立 等译
丛书名 : 计算机科学丛书
出版日期 : 2020-05-22
ISBN : 978-7-111-65462-9
定价 : 99.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 476
开本 : 16
原书名 : Computer Science Illuminated,Seventh Edition
原出版社: Jones and Bartlet Publishers
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书由当今该领域备受赞誉且经验丰富的教育家Nell Dale和John Lewis共同编写,全面介绍计算机科学领域的基础知识,为广大学生勾勒了一幅生动的画卷。就整体而言,全书内容翔实、覆盖面广,旨在向读者展示计算机科学的全貌;从细节上看,本书层次清晰、描述生动,基于计算机系统的洋葱式结构,分别介绍信息层、硬件层、程序设计层、操作系统层、应用程序层和通信层,涉及计算机科学的各个层面。
本书贯穿了计算机系统的各个方面,非常适合作为计算机专业的计算机导论课程教材,为后续专业课程打下坚实的基础;同时还适合作为非计算机专业的计算机总论课程教材,提供计算机系统全面完整的介绍。

图书特色

全面介绍计算机科学领域的基础知识,内容翔实、覆盖面广

图书前言

论题选择
为了制定这本CS0教材的论题大纲,我们利用了许多资源,包括课程目录、教材大纲,并进行了问卷调查。设计调查问卷的目的在于了解我们的同事对这门课程内容的想法。我要求大家(包括自己)列出下列三种清单:
如果CS0这门课是学生在大学阶段学习的唯一一门计算机科学的课程,请列出四种你认为他们应该掌握的论题。
请列出四种你想要学生在进入CS1这门课之前掌握的论题。
请补充四种你想要学习CS1的学生熟悉的论题。
这些资源的交集反映出的大多数人的意见,也就构成了本书的大纲。本书作为核心的CS0教材,对计算领域进行了广泛的介绍,适合作为计算机科学原理先修课程的教材,也可以用于程序设计语言的导论书或参考书。
结构说明
本书从介绍硬件和软件的历史开始,并且用洋葱的结构来类比计算机系统的结构。处理器和它的机器语言构成了洋葱的芯,软件层和更复杂的硬件一层层地裹住了这个芯。下一层是高级语言,包括FORTRAN、Lisp、Pascal、C、C++和Java。在介绍这些语言的同时,还介绍了利用它们进行程序设计的过程,包括自顶向下的设计和面向对象的设计。我们已经深刻地理解了抽象数据类型所扮演的角色及其实现。操作系统及其资源管理技术(包括更大、更快的二级存储介质上的文件)包围着这些程序,并对它们进行管理。
接下来的一层由更复杂的通用或专用软件系统构成,它们覆盖了操作系统。这些功能强大的程序开发由计算机科学中的理论推动。最后一层由网络和网络软件构成,网络软件包括计算机之间通信必需的所有工具。Internet和万维网给这一层画上了最后一笔,而这些章节也会将关于影响我们在线交流的信息安全话题的讨论推向高潮。
当这些层随着时间的推移逐渐出现时,用户对计算机系统的硬件接触得越来越少。每个层都是它下面的计算机系统的抽象。随着每个层的发展,新层的用户和内部层的用户联合起来构成了经济领域高科技部门的生产力。本书的目的是提供各个层的概述,介绍基本的硬件和软件技术,使学生了解和欣赏计算系统的方方面面。
在介绍这种洋葱式结构时,我们有两种选择,一种是从内向外逐层介绍,另一种是从外向内进行介绍。从外向内的方法看起来非常吸引人。我们可以从最抽象的层开始介绍,一次剥掉一个层,直至具体的机器层。但是,研究表明,比起抽象的例子,学生们更容易理解具体的例子。因此,我们选择从具体的机器层开始,按照层的创建顺序进行分析,当学生完全理解了一个层之后,再转移到下一个层就比较容易了。

第7版中的变化
在计划这次改版时,我们咨询了同事以及本书之前版本的一些读者,请求他们给予一些反馈。非常感谢这些有见解的回应。
第7版对全书进行了很多修改,其中之一是我们有意识地加入对特定主题的讨论,这些特定主题会在计算机原理课程的先修课中进行介绍。本书适合和先修课教材一起使用,但是针对更新的内容提出了很多见解。除此之外,在第1章中添加了计算领域的基本思想,这些思想组成了原理课程中的高级框架。
其他的重大改变是,本版加强了对云计算的介绍,并更新了第5章关于计算机描述的案例。第12章讨论了电子表格可视化,并添加了大数据的介绍。第13章添加了对智能语音助手(例如Amazon Echo和Google Home)的讨论。第15章引入了区块链,并且在第17章更新了对信息安全的讨论。
第7版的另一个大的变化是第6章中使用的虚拟机从Pep/8升级到了Pep/9,并对基本系统进行了改进,从而在机器语言和汇编层次对程序设计进行描述。
除了新的章节,本书的特色板块也进行了全面的修订和更新。现在每章结尾部分的“道德问题”都进行了更新。新增了若干个“你知道吗”板块,并且对一些板块进行了更新。除此之外,“名人传记”部分也进行了更新。
对于每一版,我们都力求提高覆盖面,改进措辞和使用的案例,以帮助读者理清楚主题。
摘要
第1章是我们探索计算机科学的基础,描述了本书的组织结构。第2章和第3章则分析包含在物理硬件中的层。这个层称为信息层,它反映了如何在计算机上表示信息。第2章介绍二进制数制以及它与其他数制(如人们日常用的十进制系统)的关系。第3章研究如何获取多种类型(如数字、文本、图像、音频和视频)的信息以及如何用二进制格式表示它们。
第4章和第5章介绍硬件层。计算机硬件包括的设备有晶体管、门和电路,它们都按照基本原理控制电流。正是这些核心电路使专门的硬件部件(如计算机的中央处理器(CPU)和存储器)得以运转。第4章介绍门和电路。第5章介绍计算机的元件,以及在冯·诺伊曼体系结构中这些元件是如何交互的。
第6~9章介绍程序设计层。第6章使用模拟计算机Pep/9介绍机器语言和汇编语言的概念。该章引入了用伪代码编写算法的功能,介绍了循环与选择的概念,并在Pep/9中以伪代码的方式实现。
第7章分析问题求解过程,同时涉及人类和计算机的问题求解方法。引导这个论题的是George Polya的人类问题求解策略。该章介绍了自顶向下的方法来设计简单算法,并在讨论算法时选择经典的搜索和排序算法。因为算法是对数据进行操作,所以在此研究数据的结构,以便更有效地处理数据。该章也介绍了子算法(子程序)语句。
第8章介绍抽象数据类型和容器,容器是只知道其属性或行为的复合结构。该章介绍了列表、有序列表、栈、队列、二叉检索树和图,扩展讨论了子算法,包括引用参数与值参、参数传递。
第9章介绍高级程序设计语言的概念。许多杰出的高级语言包含与面向对象编程相关的功能,我们绕过它们,而是先介绍了设计过程,讨论了语言范型以及编译过程。我们用四种编程语言设计了一些小例子来说明伪代码的概念,即Python、VB.NET、Java和C++。
第10章和第11章介绍操作系统层。第10章讨论操作系统的资源管理任务,介绍一些用于实现这些任务的基本算法。第11章介绍文件系统,包括什么是文件系统,以及操作系统如何管理它们。
第12~14章介绍应用层。这一层由人们用来解决问题的通用应用程序和专用应用程序构成。我们根据这些程序,把这一层分到了计算机科学的几个子学科中。第12章分析信息系统,第13章分析人工智能,第14章分析模拟、图形学、游戏和其他应用。
第15~17章介绍通信层。第15章说明计算机之间通信的理论和应用。第16章介绍万维网和它涉及的各种技术。第17章讨论计算机安全,涵盖了当今信息时代与保护信息安全相关的各个方面。
第2~17章都是说明计算机可以做什么以及它是如何做的。第18章进行总结,讨论计算机硬件和软件的固有局限性,以及计算机能够解决和不能解决的问题。在讨论算法的有效性时,采用了大O符号,以便讨论算法的分类。此外还介绍了停机问题,以说明某些不能解决的问题。
本书的第1章和最后一章就像一对书档,第1章说明了计算系统是什么,第18章告诫我们计算系统不能做什么。其余章节则深入探讨了构成计算系统的各个层。
为何不使用特定的语言
本书中并没有使用特定的程序设计语言(例如,Java、C++或其他语言),而是将选择语言的权利交给了读者。导论章节与本书的设计相一致,它们的代码可以使用Java、C++、JavaScript、Visual Basic .NET、Python、SQL、Ruby、Perl、Alice和Pascal进行编写。
如果学生对于一种编程语言的语义和基本语法有充足的知识,并且掌握了本书背景材料中的内容,那么仅需要对必要的章节进行学习即可。这些章节可以用来丰富那些具有较强知识背景的读者的学习。
特色板块
名人传记
本书具有三个特色板块,用于强调计算的历史、广度以及新技术带来的道德义务。
第一个特色板块是每章都有的简短名人传记,介绍对计算做出杰出贡献的人。这些人包括对数据层做出贡献的George Boole和Ada Lovelace,以及对通信层做出贡献的Doug Engelbart和Tim Berners-Lee。这些传记的目的是让学生了解计算界的历史以及那些对计算界做出贡献的人。
你知道吗
第二个特色板块为“你知道吗”。这部分显示在方框中,是过去、现在和未来的一些逸闻趣事,它们来自历史记录、当今的报纸和作者的见闻。这些小插曲的目的是使学生开心,鼓舞他们,激发他们的兴趣,当然也为了教育他们。
道德问题
第三个特色板块是每章中的“道德问题”小节。这些小节的目的是说明在利用计算的好处时要承担的义务。隐私权、黑客、病毒和言论自由都属于我们的论题。在每章练习的结尾处有一节叫“思考题”,涉及这些道德问题和这一章的内容。
致谢
对于这一版来说,读者是最有用的信息和建议来源。衷心感谢受调查者花时间填写了我们的网络调查问卷。还要感谢前几版的审校者,他们是:
Warren W. Sheaffer,圣保罗学院;
Tim Bower,堪萨斯州立大学;
Terri Grote,圣路易斯社区学院;
Susan Glenn,戈登州立大学;
Simon Sultana,弗雷斯诺太平洋大学;
Shruti Nagpal,伍斯特州立大学
Sandy Keeter,佛罗里达塞米诺尔州立学院
S. Monisha Pulimood,新泽西学院
Roy Thelin,岭角中学
Robert Yacobellis,芝加哥洛约拉大学
Richard Croft,东俄勒冈州立大学
Raymond J. Curts,乔治梅森大学
Mia Moore,克拉克亚特兰大大学
Melissa Stange,费尔法克斯勋爵社区学院
Matthew Hayes,路易斯安那泽维尔大学
Marie Arvi,索尔兹伯里大学
Linda Ehley,艾维诺学院
Keson Khieu,塞瑞亚学院
Keith Coates,杜瑞大学
Joon Kim,布伦特伍德学校
Joe Melanson,康宁—佩恩提德波斯特
Joan Lucas,纽约州立大学布罗克波特学院
Jeffrey L. Lehman,亨廷顿大学
Janet Helwig,加州多明尼克大学
James Thomas Davis,A.克劳福德莫斯利中学
James Hicks,洛杉矶西南学院
Jacquilin Porter,亨利福特学院和贝克学院
Homer Sharafi,北弗吉尼亚社区学院
Gil Eckert,蒙莫斯大学
Gary Monnard,圣安布鲁斯大学
David Klein,霍夫斯特拉大学
David Adams,格罗夫城市学院
Christopher League,长岛大学布鲁克林分校
Carol Sweeney,维拉学院
Brian Bradshaw,特尔学院
Bill Cole,赛瑞亚学院(洛克林)
Aparna Mahadev,伍斯特州立大学
Anna Ursyn,北卡罗来纳州
Ann Wojnar,博蒙特学校
特别感谢凯尼休斯学院的Jeffrey McConnell,他编写了第14章中的图形学部分;感谢里韦学院的Herman Tavani,他参与了修改“道德问题”的工作;感谢波士顿学院的Richard Spinello,他撰写了关于博客的道德问题一文;感谢得克萨斯大学奥斯汀分校游戏开发副主任Paul Toprac对于计算机游戏部分的贡献。
感谢审稿人与同事对第7版的内容给出了意见与建议,他们是:
Tim Bower,堪萨斯州立大学
Brian Bradshaw,特尔学院
Keith Coates,杜瑞大学
Raymond J. Curts,乔治梅森大学
James Thomas Davis,A.克劳福德莫斯利中学
Gil Eckert,蒙莫斯大学
Susan Glenn,戈登州立学院
Terri Grote,圣路易斯社区学院
Matthew Hayes,路易斯安那泽维尔大学
Sandy Keeter,佛罗里达塞米诺尔州立学院
Keson Khieu,塞瑞亚学院
Joon Kim,布伦特伍德学校
David Klein,霍夫斯特拉大学
Christopher League,长岛大学布鲁克林分校
Jeffrey L. Lehman,亨廷顿大学
Joan Lucas,纽约州立大学布罗克波特学院
Joe Melanson,康宁—佩恩提德波斯特
Gary Monnard,圣安布鲁斯大学
Shruti Nagpal,伍斯特州立大学
Jacquilin Porter,亨利福特学院和贝克学院
Homer Sharafi,北弗吉尼亚社区学院
Melissa Stange,费尔法克斯勋爵社区学院
Simon Sultana,弗雷斯诺太平洋大学
Carol Sweeney,维拉学院
Roy Thelin,岭角中学
Anna Ursyn,北卡罗来纳大学科罗拉多分校
Ann Wojnar,博蒙特学校
还要感谢Jones & Bartlett Learning的许多人,尤其是Laura Pagluica(产品管理总监)、Loren-Marie Durr(产品助理)、Alex Schab(项目专家)。
我还必须感谢我的网球朋友使我有一个健康的体魄,感谢我的桥牌朋友使我的头脑十分机敏,感谢我的家人做我的坚强后盾。
——ND  

我要感谢我的家人对我的支持。
——JL 

上架指导

计算机\基础

封底文字

本书由当今该领域备受赞誉且经验丰富的教育家Nell Dale和John Lewis共同编写,全面介绍计算机科学领域的基础知识,为广大学生勾勒出一幅生动的画卷。就整体而言,全书内容翔实、覆盖面广,旨在向读者展示计算机科学的全貌;从细节上看,本书层次清晰,描述生动,基于计算机系统的洋葱式结构,分别介绍信息层、硬件层、程序设计层、操作系统层、应用层和通信层,涉及计算机科学的各个层面。
本书贯穿了计算机系统的各个方面,非常适合作为计算机专业的计算机导论课程教材,为后续专业课程打下坚实的基础;同时还适合作为非计算机专业的计算机总论课程教材,提供计算机系统全面、完整的介绍。
第7版经过全面的修订和更新,具有以下特色:
新增了云计算、大数据、计算机系统与安全方面的介绍。更新了第6章部分实例。
彻底更新了名人传记、历史点评以及技术发展的前沿知识,并就科技发展与人类社会伦理道德进行了探讨。
更新了计算机科学新发展的内容。
包含大量练习和思考题,方便教学。
作者简介:
内尔·黛尔(Nell Dale) 计算机科学领域广受推崇的教育家。在得克萨斯大学奥斯汀分校执教的二十多年中,她编写了四十多本计算机科学方面的本科生教材。她于得克萨斯大学奥斯汀分校获得了硕士学位和计算机科学博士学位。由于在计算机科学领域做出了卓越贡献,她于1996年获得了ACM SIGCSE计算机科学教育杰出贡献奖,于2001年获得了ACM Karl Karlston杰出教师奖。她于2010年被选为ACM会士。
约翰·路易斯(John Lewis) 计算机科学领域著名的教育家和作家。他编写的Java软件及程序设计教材十分畅销。他于弗吉尼亚理工大学获得博士学位,并曾在维拉诺瓦大学计算机科学系执教14年,现任教于弗吉尼亚理工大学。执教期间,他获奖无数,包括大学卓越教学奖和Goff杰出教学奖。他的研究兴趣包括面向对象技术、多媒体和软件工程。

作者简介

[美] 内尔·黛尔(Nell Dale)/得克萨斯大学奥斯汀分校约翰·路易斯(John Lewis)/弗吉尼亚理工大学 著:内尔•黛尔(Nell Dale) 计算机科学领域广受推崇的教育家。在得克萨斯大学奥斯汀分校执教的二十多年中,她编写了四十多本计算机科学方面的本科生教材。她于得克萨斯大学奥斯汀分校获得了硕士学位和计算机科学博士学位。由于在计算机科学领域做出了卓越贡献,她于1996年获得了ACM SIGCSE计算机科学教育杰出贡献奖,于2001年获得了ACM Karl Karlston杰出教师奖。她于2010年被选为ACM会士。
约翰•路易斯(John Lewis) 计算机科学领域著名的教育家和作家。他编写的Java软件及程序设计教材十分畅销。他于弗吉尼亚理工大学获得博士学位,并曾在维拉诺瓦大学计算机科学系执教14年,现任教于弗吉尼亚理工大学。执教期间,他获奖无数,包括大学卓越教学奖和Goff杰出教学奖。他的研究兴趣包括面向对象技术、多媒体和软件工程。

译者序

本书由当今计算机领域备受赞誉的教育家Nell Dale和John Lewis共同编写,全面地介绍了计算机科学领域的基础知识,对计算机专业的学生来说是一本非常合适的计算机导论课程教材。
第1章是基础篇,介绍了硬件、软件的历史。作者将计算机系统比作洋葱,之后的章节就使用这种结构,分别介绍了计算机系统的信息层、硬件层、程序设计层、操作系统层、应用层、通信层,最后总结性地讨论了计算机硬件和软件固有的局限性,以及计算机能够解决和不能解决的问题。
除了详细地介绍计算机系统之外,本书还有五个亮点。第一,每一章都有一篇简短的名人传记,介绍了对计算机发展做出杰出贡献的人。第二,每章中穿插着“你知道吗”板块(以方框形式给出),讲述了计算机发展过程中的一些逸闻趣事,这些小故事来自历史记录、报纸以及作者的见闻,相信这些小插曲一定可以激发读者学习的兴趣。第三,每章最后有一个“道德问题”小节,经过改版,这一部分的主题更为一致,从道德责任的定义和专业计算机人士的道德责任开始,对涉及计算机的各个社会问题进行了讨论,再辅以每章最后的思考题,可以让读者对这些道德问题有更深入的理解。第四,每章结尾处附有大量的练习,可以帮助读者更好地吸收每个章节的知识。第五,对于每个关键术语,书中都在相应部分给出其定义,方便读者快速了解其含义。
本书内容翔实全面,贯穿了计算机科学的各个方面,生动地向读者展现了计算机科学的全貌。这本书可以说是每一个学习计算机科学的人都应该读的第一本书,能够让读者对计算机科学有一个整体的认识。而对于非计算机专业的学生,如果想了解计算机的相关知识,这本书也是一个不错的选择。
本书的主要译者为吕云翔、杨洪洋和曾洪立,高峻逸、张扬、索宇澄、李熙和唐思渊也参与了部分内容的翻译。
在翻译过程中,我们力求忠实、准确地把握原著的内容,但由于译者水平有限,书中难免有错误和不准确之处,敬请广大读者批评指正(Email:yunxianglu@hotmail.com)。

译者
2019年10月

图书目录

出版者的话
译者序
前言
第一部分 基础篇
第1章 全景图 2
1.1 计算系统 2
1.1.1 计算系统的分层 3
1.1.2 抽象 4
1.2 计算的历史 6
1.2.1 计算硬件简史 6
1.2.2 计算软件简史 13
1.2.3 预言 17
1.3 计算工具与计算学科 17
小结 19
道德问题:数字鸿沟 19
关键术语 20
练习 20
思考题 21
第二部分 信息层
第2章 二进制数值与记数系统 24
2.1 数字与计算 24
2.2 位置记数法 25
2.2.1 二进制、八进制和十六进制 26
2.2.2 其他记数系统中的运算 29
2.2.3 以2的幂为基数的记数系统 30
2.2.4 将十进制数转换成其他数制的数 31
2.2.5 二进制数值与计算机 32
小结 33
道德问题:FISA法庭 34
关键术语 34
练习 34
思考题 36
第3章 数据表示法 37
3.1 数据与计算机 37
3.1.1 模拟数据与数字数据 38
3.1.2 二进制表示法 40
3.2 数字数据表示法 41
3.2.1 负数表示法 41
3.2.2 实数表示法 44
3.3 文本表示法 46
3.3.1 ASCII字符集 47
3.3.2 Unicode字符集 48
3.3.3 文本压缩 48
3.4 音频数据表示法 52
3.4.1 音频格式 53
3.4.2 MP3音频格式 54
3.5 图像与图形表示法 54
3.5.1 颜色表示法 54
3.5.2 数字化图像与图形 55
3.5.3 图形的矢量表示法 57
3.6 视频表示法 57
小结 58
道德问题:Snowden事件的影响 58
关键术语 59
练习 59
思考题 61
第三部分 硬件层
第4章 门和电路 64
4.1 计算机和电学 64
4.2 门 66
4.2.1 非门 66
4.2.2 与门 67
4.2.3 或门 68
4.2.4 异或门 68
4.2.5 与非门和或非门 68
4.2.6 门处理回顾 69
4.2.7 具有更多输入的门 70
4.3 门的构造 70
4.4 电路 72
4.4.1 组合电路 72
4.4.2 加法器 75
4.4.3 多路复用器 76
4.5 存储器电路 77
4.6 集成电路 78
4.7 CPU芯片 78
小结 79
道德问题:道德规范 79
关键术语 80
练习 80
思考题 82
第5章 计算部件 83
5.1 独立的计算机部件 83
5.2 存储程序的概念 86
5.2.1 冯·诺伊曼体系结构 88
5.2.2 读取–执行周期 91
5.2.3 RAM和ROM 93
5.2.4 二级存储设备 93
5.2.5 触摸屏 97
5.3 嵌入式系统 98
5.4 并行体系结构 99
5.4.1 并行计算 99
5.4.2 并行硬件分类 100
小结 101
道德问题:隐私是否已经是过去时? 101
关键术语 102
练习 102
思考题 103
第四部分 程序设计层
第6章 低级程序设计语言与伪代码 106
6.1 计算机操作 106
6.2 机器语言 107
6.2.1 Pep/9:一台虚拟机 107
6.2.2 Pep/9的输入/输出 112
6.3 一个程序实例 112
6.3.1 Pep/9模拟器 113
6.3.2 另一个机器语言实例 114
6.4 汇编语言 115
6.4.1 Pep/9汇编语言 115
6.4.2 数字数据、分支、标签 117
6.4.3 汇编语言中的循环 120
6.5 表达算法 121
6.5.1 伪代码的功能 121
6.5.2 执行伪代码算法 124
6.5.3 写伪代码算法 126
6.5.4 翻译伪代码算法 127
6.6 测试 129
小结 130
道德问题:软件盗版 131
关键术语 131
练习 131
思考题 133
第7章 问题求解与算法设计 134
7.1 如何解决问题 134
7.1.1 提出问题 135
7.1.2 寻找熟悉的情况 136
7.1.3 分治法 137
7.1.4 算法 137
7.1.5 计算机问题求解过程 137
7.1.6 方法总结 139
7.1.7 测试算法 139
7.2 有简单变量的算法 140
7.2.1 带有选择的算法 140
7.2.2 带有循环的算法 140
7.3 复杂变量 143
7.3.1 数组 144
7.3.2 记录 144
7.4 搜索算法 145
7.4.1 顺序搜索 145
7.4.2 有序数组中的顺序搜索 146
7.4.3 二分检索 147
7.5 排序 148
7.5.1 选择排序 148
7.5.2 冒泡排序 150
7.5.3 插入排序 151
7.6 递归算法 152
7.6.1 子程序语句 153
7.6.2 递归阶乘 153
7.6.3 递归二分检索 154
7.6.4 快速排序 154
7.7 几个重要思想 157
7.7.1 信息隐蔽 157
7.7.2 抽象 157
7.7.3 事物命名 158
7.7.4 测试 158
小结 158
道德问题:开源软件 159
关键术语 160
练习 160
思考题 162
第8章 抽象数据类型与子程序 163
8.1 抽象数据类型 163
8.2 栈 164
8.3 队列 164
8.4 列表 165
8.5 树 167
8.5.1 二叉树 167
8.5.2 二叉检索树 169
8.5.3 其他操作 173
8.6 图 173
8.6.1 创建图 174
8.6.2 图算法 175
8.7 子程序 179
8.7.1 参数传递 180
8.7.2 值参与引用参数 181
小结 183
道德问题:工作场所监视 183
关键术语 184
练习 184
思考题 187
第9章 面向对象设计与高级程序设计语言 188
9.1 面向对象方法 188
9.1.1 面向对象 189
9.1.2 设计方法 189
9.1.3 示例 191
9.2 翻译过程 194
9.2.1 编译器 194
9.2.2 解释器 195
9.3 程序设计语言范型 196
9.3.1 命令式范型 197
9.3.2 声明式范型 197
9.4 高级程序设计语言的功能性 199
9.4.1 布尔表达式 199
9.4.2 数据归类 200
9.4.3 输入/输出结构 203
9.4.4 控制结构 204
9.5 面向对象语言的功能性 208
9.5.1 封装 209
9.5.2 类 209
9.5.3 继承 210
9.5.4 多态 211
9.6 过程设计与面向对象设计的区别 211
小结 212
道德问题:恶作剧与诈骗 213
关键术语 214
练习 214
思考题 216
第五部分 操作系统层
第10章 操作系统 218
10.1 操作系统的角色 218
10.1.1 内存、进程与CPU管理 220
10.1.2 批处理 220
10.1.3 分时 221
10.1.4 其他OS要素 222
10.2 内存管理 223
10.2.1 单块内存管理 224
10.2.2 分区内存管理 225
10.2.3 页式内存管理 227
10.3 进程管理 228
10.3.1 进程状态 229
10.3.2 进程控制块 229
10.4 CPU调度 230
10.4.1 先到先服务 231
10.4.2 最短作业优先 231
10.4.3 轮询法 232
小结 233
道德问题:医疗隐私——健康保险携带与责任法案(HIPAA) 234
关键术语 234
练习 235
思考题 237
第11章 文件系统和目录 238
11.1 文件系统 238
11.1.1 文本文件和二进制文件 239
11.1.2 文件类型 239
11.1.3 文件操作 240
11.1.4 文件访问 241
11.1.5 文件保护 242
11.2 目录 243
11.2.1 目录树 244
11.2.2 路径名 246
11.3 磁盘调度 247
11.3.1 先到先服务磁盘调度法 248
11.3.2 最短寻道时间优先磁盘调度法 249
11.3.3 SCAN磁盘调度法 249
小结 251
道德问题:选择加入和选择退出 251
关键术语 252
练习 252
思考题 254
第六部分 应用层
第12章 信息系统 256
12.1 信息管理 256
12.2 电子制表软件 257
12.2.1 电子数据表公式 259
12.2.2 循环引用 262
12.2.3 电子数据表分析 263
12.3 数据库管理系统 264
12.3.1 关系模型 265
12.3.2 关系 267
12.3.3 结构化查询语言 268
12.3.4 数据库设计 270
12.4 电子商务 270
12.5 大数据 271
小结 272
道德问题:政治与网络 273
关键术语 274
练习 274
思考题 276
第13章 人工智能 277
13.1 思维机 277
13.1.1 图灵测试 278
13.1.2 AI问题的各个方面 279
13.2 知识表示 279
13.2.1 语义网 280
13.2.2 检索树 282
13.3 专家系统 284
13.4 神经网络 286
13.4.1 生物神经网络 286
13.4.2 人工神经网络 287
13.5 自然语言处理 288
13.5.1 语音合成 289
13.5.2 语音识别 290
13.5.3 自然语言理解 291
13.6 机器人学 292
13.6.1 感知–规划–执行范型 292
13.6.2 包孕体系结构 293
13.6.3 物理部件 294
小结 295
道德问题:首次公开发行 296
关键术语 297
练习 297
思考题 298
第14章 模拟、图形学、游戏和其他应用 299
14.1 什么是模拟 299
14.1.1 复杂系统 299
14.1.2 模型 300
14.1.3 构造模型 300
14.2 特殊模型 301
14.2.1 排队系统 301
14.2.2 气象模型 303
14.2.3 计算生物学 307
14.2.4 其他模型 307
14.2.5 必要的计算能力 307
14.3 计算机图形学 308
14.3.1 光的工作原理 309
14.3.2 物体形状 310
14.3.3 光模拟 310
14.3.4 复杂对象的建模 311
14.3.5 让物体动起来 314
14.4 游戏 315
14.4.1 游戏的历史 316
14.4.2 创建虚拟世界 316
14.4.3 游戏设计与开发 317
14.4.4 游戏编程 318
小结 319
道德问题:游戏成瘾 319
关键术语 320
练习 320
思考题 321
第七部分 通信层
第15章 网络 324
15.1 连网 324
15.1.1 网络的类型 325
15.1.2 Internet连接 327
15.1.3 包交换 330
15.2 开放式系统与协议 331
15.2.1 开放式系统 331
15.2.2 网络协议 331
15.2.3 TCP/IP 332
15.2.4 高层协议 333
15.2.5 MIME类型 334
15.2.6 防火墙 334
15.3 网络地址 335
15.3.1 域名系统 336
15.3.2 谁控制因特网 338
15.4 云计算 339
15.5 区块链 340
小结 341
道德问题:社交网络的影响 341
关键术语 342
练习 343
思考题 344
第16章 万维网 345
16.1 Web简介 345
16.1.1 搜索引擎 346
16.1.2 即时消息 347
16.1.3 博客 348
16.1.4 cookie 348
16.1.5 Web分析 349
16.2 HTML和CSS 350
16.2.1 基本的HTML元素 352
16.2.2 标记的属性 353
16.2.3 关于CSS的更多内容 353
16.2.4 更多HTML5的元素 355
16.3 交互式网页 356
16.3.1 Java小程序 356
16.3.2 Java服务器页 357
16.4 XML 358
16.5 社交网络演化 360
小结 361
道德问题:赌博与互联网 363
关键术语 363
练习 364
思考题 365
第17章 计算机安全 366
17.1 各级安全 366
17.2 阻止未授权访问 368
17.2.1 密码 369
17.2.2 验证码 370
17.2.3 指纹分析 371
17.3 恶意代码 372
17.3.1 杀毒软件 373
17.3.2 安全攻击 373
17.4 密码学 375
17.5 保护你的在线信息 377
17.5.1 共同的责任 379
17.5.2 安全与可移动设备 379
17.5.3 维基解密 379
小结 381
道德问题:博客和新闻 382
关键术语 383
练习 384
思考题 385
第八部分 总结
第18章 计算的限制 388
18.1 硬件 388
18.1.1 算术运算的限制 388
18.1.2 部件的限制 393
18.1.3 通信的限制 394
18.2 软件 394
18.2.1 软件的复杂度 395
18.2.2 当前提高软件质量的方法 395
18.2.3 臭名昭著的软件错误 399
18.3 问题 400
18.3.1 算法比较 400
18.3.2 图灵机 405
18.3.3 停机问题 408
18.3.4 算法分类 409
小结 410
道德问题:Therac-25灾难剖析 410
关键术语 411
练习 411
思考题 413
参考文献 414
索引 421

教学资源推荐
作者: [美] 托马斯·斯特林(Thomas Sterling) 马修·安德森(Matthew Anderson) 马切伊·布罗多维茨(Maciej Brodowicz) 著
作者: [美]迈克尔·西普塞(Michael Sipser)著
作者: Alfred V.Aho, John E.Hopcroft, Jeffrey D.Ullman
参考读物推荐
作者: 华诚科技 编著
作者: Tom St Denis;Simon Johnson
作者: 华诚科技 编著
作者: 侯晴 汪翔