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

本书从信息层开始,历经硬件层、程序设计层、操作系统层、应用层和通信层,深入剖析了计算系统的每个分层,最后讨论了计算的限制。此外,正文中插入了大量的名人传记、历史点评、道德问题和新的技术发展信息,有助于你进一步了解计算机科学。每章后面都附带有大量的练习,可以帮助你即时重温并掌握这一章所讲述的内容。 本书是计算机科学导论课程的理想教材,对于想要了解计算机科学概况的非专业人员,本书也是一个很好的选择。

图书特色

WU

图书前言

论题选择
为了制定这本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章讨论计算机安全,涵盖了当今信息时代与保护信息安全相关的各个方面。
为何不使用特定的语言
本书中并没有使用特定的程序设计语言(例如,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杰出教学奖。他的研究兴趣包括面向对象技术、多媒体和软件工程。

图书目录

出版者的话
前言
第一部分 基础篇
第1章 全景图 3
1.1 计算系统 4
计算系统的分层 4
抽象 6
1.2 计算的历史 9
计算硬件简史 9
计算软件简史 19
预言 25
1.3 计算工具与计算学科 26
计算的基本思想 27
小结 28
道德问题:数字鸿沟 30
关键术语 31
练习 31
思考题 33
第二部分 信息层
第2章 二进制数值与记数系统 35
2.1 数字与计算 36
2.2 位置记数法 36
二进制、八进制和十六进制 38
其他记数系统中的运算 41
以2的幂为基数的记数系统 42
将十进制数转换成其他数制的数 44
二进制数值与计算机 45
小结 48
道德问题:FISA法庭 49
关键术语 49
练习 50
思考题 53
第3章 数据表示法 55
3.1 数据与计算机 56
模拟数据与数字数据 57
二进制表示法 59
3.2 数字数据表示法 61
负数表示法 61
实数表示法 65
3.3 文本表示法 68
ASCII字符集 69
Unicode字符集 70
文本压缩 71
3.4 音频数据表示法 77
音频格式 79
MP3音频格式 79
3.5 图像与图形表示法 80
颜色表示法 80
数字化图像与图形 82
图形的矢量表示法 83
3.6 视频表示法 84
视频编译码器 84
小结 85
道德问题:Snowden事件的影响 86
关键术语 86
练习 87
思考题 91
第三部分 硬件层
第4章 门和电路 93
4.1 计算机和电学 94
4.2 门 96
非门 96
与门 97
或门 98
异或门 98
与非门和或非门 99
门处理回顾 100
具有更多输入的门 101
4.3 门的构造 101
晶体管 102
4.4 电路 104
组合电路 104
加法器 108
多路复用器 110
4.5 存储器电路 111
4.6 集成电路 112
4.7 CPU芯片 113
小结 113
道德问题:道德规范 114
关键术语 116
练习 116
思考题 119
第5章 计算部件 121
5.1 独立的计算机部件 122
5.2 存储程序的概念 126
冯·诺伊曼体系结构 128
读取–执行周期 132
RAM和ROM 134
二级存储设备 135
触摸屏 139
5.3 嵌入式系统 141
5.4 并行体系结构 142
并行计算 142
并行硬件分类 144
小结 145
道德问题:隐私是否已经是过去时? 146
关键术语 146
练习 147
思考题 149
第四部分 程序设计层
第6章 低级程序设计语言与伪代码 151
6.1 计算机操作 152
6.2 机器语言 152
Pep/9:一台虚拟机 153
Pep/9的输入/输出 159
6.3 一个程序实例 159
Pep/9模拟器 160
另一个机器语言实例 162
6.4 汇编语言 163
Pep/9汇编语言 164
数字数据、分支、标签 166
汇编语言中的循环 170
6.5 表达算法 171
伪代码的功能 171
执行伪代码算法 175
写伪代码算法 177
翻译伪代码算法 180
6.6 测试 182
小结 183
道德问题:软件盗版 185
关键术语 186
练习 186
思考题 189
第7章 问题求解与算法设计 191
7.1 如何解决问题 192
提出问题 193
寻找熟悉的情况 193
分治法 194
算法 194
计算机问题求解过程 196
方法总结 197
测试算法 198
7.2 有简单变量的算法 199
带有选择的算法 199
带有循环的算法 200
7.3 复杂变量 206
数组 206
记录 207
7.4 搜索算法 208
顺序搜索 208
有序数组中的顺序搜索 209
二分检索 212
7.5 排序 214
选择排序 215
冒泡排序 218
插入排序 220
7.6 递归算法 221
子程序语句 221
递归阶乘 223
递归二分检索 224
快速排序 224
7.7 几个重要思想 228
信息隐蔽 228
抽象 229
事物命名 230
测试 231
小结 231
道德问题:开源软件 232
关键术语 234
练习 234
思考题 239
第8章 抽象数据类型与子程序 241
8.1 抽象数据类型 242
8.2 栈 242
8.3 队列 243
8.4 列表 244
8.5 树 247
二叉树 247
二叉检索树 249
其他操作 255
8.6 图 256
创建图 258
图算法 259
8.7 子程序 265
参数传递 266
值参与引用参数 268
小结 271
道德问题:工作场所监视 273
关键术语 274
练习 274
思考题 279
第9章 面向对象设计与高级程序设计语言 281
9.1 面向对象方法 282
面向对象 282
设计方法 283
示例 286
9.2 翻译过程 291
编译器 292
解释器 292
9.3 程序设计语言范型 295
命令式范型 295
声明式范型 296
9.4 高级程序设计语言的功能性 298
布尔表达式 299
数据归类 301
输入/输出结构 305
控制结构 307
9.5 面向对象语言的功能性 313
封装 313
类 314
继承 316
多态 317
9.6 过程设计与面向对象设计的区别 318
小结 319
道德问题:恶作剧与诈骗 321
关键术语 322
练习 323
思考题 327
第五部分 操作系统层
第10章 操作系统 329
10.1 操作系统的角色 330
内存、进程与CPU管理 332
批处理 333
分时 334
其他OS要素 335
10.2 内存管理 336
单块内存管理 338
分区内存管理 339
页式内存管理 341
10.3 进程管理 344
进程状态 344
进程控制块 345
10.4 CPU调度 346
先到先服务 347
最短作业优先 348
轮询法 348
小结 350
道德问题:医疗隐私—健康保险携带与责任法案(HIPAA) 352
关键术语 353
练习 354
思考题 359
第11章 文件系统和目录 361
11.1 文件系统 362
文本文件和二进制文件 362
文件类型 363
文件操作 365
文件访问 366
文件保护 367
11.2 目录 368
目录树 369
路径名 371
11.3 磁盘调度 373
先到先服务磁盘调度法 375
最短寻道时间优先磁盘调度法 375
SCAN磁盘调度法 376
小结 378
道德问题:选择加入和选择退出 380
关键术语 381
练习 381
思考题 385
第六部分 应用层
第12章 信息系统 387
12.1 信息管理 388
12.2 电子制表软件 389
电子数据表公式 391
循环引用 396
电子数据表分析 397
12.3 数据库管理系统 399
关系模型 399
关系 403
结构化查询语言 404
数据库设计 405
12.4 电子商务 407
12.5 大数据 408
小结 409
道德问题:政治与网络 411
关键术语 413
练习 413
思考题 417
第13章 人工智能 419
13.1 思维机 420
图灵测试 421
AI问题的各个方面 423
13.2 知识表示 423
语义网 425
检索树 427
13.3 专家系统 430
13.4 神经网络 432
生物神经网络 432
人工神经网络 433
13.5 自然语言处理 435
语音合成 437
语音识别 438
自然语言理解 439
13.6 机器人学 440
感知–规划–执行范型 441
包孕体系结构 441
物理部件 443
小结 445
道德问题:首次公开发行 447
关键术语 448
练习 448
思考题 451
第14章 模拟、图形学、游戏和其他应用 453
14.1 什么是模拟 454
复杂系统 454
模型 455
构造模型 455
14.2 特殊模型 457
排队系统 457
气象模型 461
计算生物学 466
其他模型 467
必要的计算能力 467
14.3 计算机图形学 468
光的工作原理 470
物体形状 472
光模拟 472
复杂对象的建模 474
让物体动起来 480
14.4 游戏 482
游戏的历史 483
创建虚拟世界 484
游戏设计与开发 485
游戏编程 486
小结 487
道德问题:游戏成瘾 489
关键术语 490
练习 490
思考题 493
第七部分 通信层
第15章 网络 495
15.1 连网 496
网络的类型 497
Internet连接 500
包交换 502
15.2 开放式系统与协议 504
开放式系统 504
网络协议 505
TCP/IP 506
高层协议 507
MIME类型 508
防火墙 509
15.3 网络地址 510
域名系统 511
谁控制因特网 514
15.4 云计算 515
15.5 区块链 516
小结 517
道德问题:社交网络的影响 519
关键术语 520
练习 521
思考题 523
第16章 万维网 525
16.1 Web简介 526
搜索引擎 527
即时消息 528
博客 529
cookie 530
Web分析 530
16.2 HTML和CSS 531
基本的HTML元素 535
标记的属性 536
关于CSS的更多内容 537
更多HTML5的元素 540
16.3 交互式网页 541
Java小程序 541
Java服务器页 542
16.4 XML 543
16.5 社交网络演化 547
小结 548
道德问题:赌博与互联网 551
关键术语 552
练习 552
思考题 555
第17章 计算机安全 557
17.1 各级安全 558
信息安全 558
17.2 阻止未授权访问 560
密码 561
验证码 563
指纹分析 564
17.3 恶意代码 565
杀毒软件 566
安全攻击 567
17.4 密码学 569
17.5 保护你的在线信息 572
共同的责任 574
安全与可移动设备 574
维基解密 575
小结 578
道德问题:博客和新闻 580
关键术语 581
练习 582
思考题 585
网上资料
术语表
参考文献
索引


CONTENTS

1 Laying the Groundwork . . . . . . . . . . . . .2
Chapter 1The Big Picture 3
1.1 Computing Systems 4

Layers of a Computing System 4

Abstraction 6

1.2 The History of Computing 9

A Brief History of Computing Hardware 9

A Brief History of Computing Software 19

Predictions 25

1.3 Computing as a Tool and a.Discipline 26

The Big Ideas of Computing 27

Summary 28

Ethical Issues: Digital Divide 30

Key Terms 31

Exercises 31

Thought Questions 33

2 The Information Layer . . . . . . . . . . . . .34
Chapter 2Binary Values and Number Systems 35
2.1 Numbers and Computing 36
2.2 Positional Notation 36

Binary, Octal, and Hexadecimal 38

Arithmetic in Other Bases 41

Power-of-2 Number Systems 42

Converting from Base 10 to Other Bases 44

Binary Values and Computers 45

Summary 48

Ethical Issues: The FISA Court 49

Key Terms 49

Exercises 50
Thought Questions 53

Chapter 3 Data Representation 55
3.1 Data and Computers 56

Analog and Digital Data 57

Binary Representations 59
3.2 Representing Numeric Data 61

Representing Negative Values 61

Representing Real Numbers 65

3.3 Representing Text 68

The ASCII Character Set 69

The Unicode Character Set 70

Text Compression 71

3.4 Representing Audio Data 77

Audio Formats 79

The MP3 Audio Format 79

3.5 Representing Images and Graphics 80

Representing Color 80

Digitized Images and Graphics 82

Vector Representation of Graphics 83

3.6 Representing Video 84

Video Codecs 84

Summary 85
Ethical Issues: The Fallout from Snowden’s Revelations 86
Key Terms 86
Exercises 87
Thought Questions 91
3 The Hardware Layer . . . . . . . . . . . . . . .92
Chapter 4 Gates and Circuits 93
4.1 Computers and Electricity 94
4.2 Gates 96

NOT Gate 96

AND Gate 97

OR Gate 98

XOR Gate 98

NAND and NOR Gates 99

Review of Gate Processing 100

Gates with More Inputs 101

4.3 Constructing Gates 101

Transistors 102

4.4 Circuits 104

Combinational Circuits 104

Adders 108

Multiplexers 110

4.5 Circuits as Memory 111
4.6 Integrated Circuits 112
4.7 CPU Chips 113
Summary 113
Ethical Issues: Codes of Ethics 114
Key Terms 116
Exercises 116
Thought Questions 119
Chapter 5 Computing Components 121
5.1 Individual Computer Components 122
5.2 The Stored-Program Concept 126

von Neumann Architecture 128

The Fetch–Execute Cycle 132

RAM and ROM 134

Secondary Storage Devices 135

Touch Screens 139

5.3 Embedded Systems 141
5.4 Parallel Architectures 142

Parallel Computing 142

Classes of Parallel Hardware 144

Summary 145
Ethical Issues: Is Privacy a Thing of the Past? 146
Key Terms 146 Exercises 147
Thought Questions 149
4 The Programming Layer . . . . . . . . . . .150
Chapter 6 Low-Level Programming Languages and Pseudocode 151
6.1 Computer Operations 152
6.2 Machine Language 152

Pep/9: A Virtual Computer 153

Input and Output in Pep/9 159

6.3 A Program Example 159

Pep/9 Simulator 160

Another Machine-Language Example 162

6.4 Assembly Language 163

Pep/9 Assembly Language 164

Numeric Data, Branches, and Labels 166

Loops in Assembly Language 170

6.5 Expressing Algorithms 171

Pseudocode Functionality 171

Following a Pseudocode Algorithm 175

Writing a Pseudocode Algorithm 177

Translating a Pseudocode Algorithm 180

6.6 Testing 182
Summary 183

Ethical Issues: Software Piracy 185

Key Terms 186
Exercises 186

Thought Questions 189

Chapter 7 Problem Solving and Algorithms 191
7.1 How to Solve Problems 192

Ask Questions 193

Look for Familiar Things 193

Divide and Conquer 194

Algorithms 194

Computer Problem-Solving Process 196

Summary of Methodology 197

Testing the Algorithm 198

7.2 Algorithms with Simple Variables 199

An Algorithm with Selection 199

Algorithms with Repetition 200

7.3 Composite Variables 206

Arrays 206

Records 207

7.4 Searching Algorithms 208

Sequential Search 208

Sequential Search in a Sorted Array 209

Binary Search 212

7.5 Sorting 214

Selection Sort 215

Bubble Sort 218

Insertion Sort 220

7.6 Recursive Algorithms 221

Subprogram Statements 221

Recursive Factorial 223

Recursive Binary Search 224

Quicksort 224

7.7 Important Threads 228

Information Hiding 228

Abstraction 229

Naming Things 230

Testing 231

Summary 231
Ethical Issues: Open-Source Software 232
Key Terms 234
Exercises 234
Thought Questions 239
Chapter 8 Abstract Data Types and Subprograms 241
8.1 What Is an Abstract Data Type? 242
8.2 Stacks 242
8.3 Queues 243
8.4 Lists 244
8.5 Trees 247

Binary Trees 247

Binary Search Trees 249

Other Operations 255

8.6 Graphs 256

Creating a Graph 258

Graph Algorithms 259

8.7 Subprograms 265

Parameter Passing 266

Value and Reference Parameters 268

Summary 271

Ethical Issues: Workplace Monitoring 273

Key Terms 274

Exercises 274

Thought Questions 279

Chapter 9 Object-Oriented Design and High-Level Programming Languages 281
9.1 Object-Oriented Methodology 282

Object Orientation 282

Design Methodology 283

Example 286

9.2 Translation Process 291

Compilers 292

Interpreters 292

9.3 Programming Language Paradigms 295

Imperative Paradigm 295

Declarative Paradigm 296

9.4 Functionality in High-Level Languages 298

Boolean Expressions 299

Data Typing 301

Input/Output Structures 305

Control Structures 307

9.5 Functionality of Object-Oriented Languages 313

Encapsulation 313

Classes 314

Inheritance 316

Polymorphism 317

9.6 Comparison of Procedural and Object-Oriented Designs 318
Summary 319

Ethical Issues: Hoaxes and Scams 321

Key Terms 322

Exercises 323

Thought Questions 327

The Operating Systems Layer . . . . . . .328
Chapter 10 Operating Systems 329
10.1 Roles of an Operating System 330

Memory, Process, and CPU Management 332

Batch Processing 333

Timesharing 334

Other OS Factors 335

10.2 Memory Management 336

Single Contiguous Memory Management 338

Partition Memory Management 339

Paged Memory Management 341

10.3 Process Management 344

The Process States 344

The Process Control Block 345

10.4 CPU Scheduling 346

First Come, First Served 347

Shortest Job Next 348

Round Robin 348

Summary 350

Ethical Issues: Medical Privacy: HIPAA 352

Key Terms 353

Exercises 354

Thought Questions 359

Chapter 11 File Systems and Directories 361
11.1 File Systems 362

Text and Binary Files 362

File Types 363

File Operations 365

File Access 366

File Protection 367

11.2 Directories 368

Directory Trees 369

Path Names 371

11.3 Disk Scheduling 373

First-Come, First-Served Disk Scheduling 375

Shortest-Seek-Time-First Disk Scheduling 375

SCAN Disk Scheduling 376

Summary 378
Ethical Issues: Privacy: Opt-In or Opt-Out? 380
Key Terms 381
Exercises 381
Thought Questions 385
6 The Applications Layer . . . . . . . . . . . .386
Chapter 12 Information Systems 387
12.1 Managing Information 388
12.2 Spreadsheets 389

Spreadsheet Formulas 391

Circular References 396

Spreadsheet Analysis 397

12.3 Database Management Systems 399

The Relational Model 399

Relationships 403

Structured Query Language 404

Database Design 405

12.4 E-Commerce 407
12.5 Big Data 408
Summary 409
Ethical Issues: Politics and the Internet 411
Key Terms 413
Exercises 413
Thought Questions 417
13.1 Thinking Machines 420

The Turing Test 421

Aspects of AI 423

13.2 Knowledge Representation 423

Semantic Networks 425

Search Trees 427

13.3 Expert Systems 430
13.4 Neural Networks 432

Biological Neural Networks 432

Artificial Neural Networks 433

13.5 Natural-Language Processing 435

Voice Synthesis 437

Voice Recognition 438

Natural-Language Comprehension 439

13.6 Robotics 440

The Sense–Plan–Act Paradigm 441

Subsumption Architecture 441

Physical Components 443

Summary 445

Ethical Issues: Initial Public Offerings 447

Key Terms 448

Exercises 448

Thought Questions 451

Chapter 14 Simulation, Graphics, Gaming, and Other Applications 453
14.1 What Is Simulation? 454

Complex Systems 454

Models 455
Constructing Models 455
14.2 Specific Models 457
Queuing Systems 457
Meteorological Models 461
Computational Biology 466
Other Models 467
Computing Power Necessary 467
14.3 Computer Graphics 468
How Light Works 470
Object Shape Matters 472
Simulating Light 472
Modeling Complex Objects 474
Getting Things to Move 480
14.4 Gaming 482
History of Gaming 483
Creating the Virtual World 484
Game Design and Development 485
Game Programming 486
Summary 487
Ethical Issues: Gaming as an Addiction 489
Key Terms 490
Exercises 490
Thought Questions 493
The Communications Layer . . . . . . . . .494
Chapter 15 Networks 495
15.1 Networking 496
Types of Networks 497
Internet Connections 500
Packet Switching 502
15.2 Open Systems and Protocols 504
Open Systems 504
Network Protocols 505
TCP/IP 506
High-Level Protocols 507
MIME Types 508
Firewalls 509
15.3 Network Addresses 510
Domain Name System 511
Who Controls the Internet? 514
15.4 Cloud Computing 515
15.5 Blockchain 516
Summary 517
Ethical Issues: The Effects of Social Networking 519
Key Terms 520
Exercises 521
Thought Questions 523
Chapter 16 The World Wide Web 525
16.1 Spinning the Web 526
Search Engines 527
Instant Messaging 528
Weblogs 529
Cookies 530
Web Analytics 530
16.2 HTML and CSS 531
Basic HTML Elements 535
Tag Attributes 536
More About CSS 537
More HTML5 Elements 540
16.3 Interactive Web Pages 541
Java Applets 541
Java Server Pages 542
16.4 XML 543
16.5 Social Network Evolution 547
Summary 548
Ethical Issues: Gambling and the Internet 551
Key Terms 552
Exercises 552
Thought Questions 555
Chapter 17 Computer Security 557
17.1 Security at All Levels 558
Information Security 558
17.2 Preventing Unauthorized Access 560
Passwords 561
CAPTCHA 563
Fingerprint Analysis 564
17.3 Malicious Code 565
Antivirus Software 566
Security Attacks 567
17.4 Cryptography 569
17.5 Protecting Your Information Online 572
Corporate Responsibility 574
Security and Portable Devices 574
WikiLeaks 575
Summary 578
Ethical Issues: Blogging and Journalism 580
Key Terms 581
Exercises 582
Thought Questions 585
In Conclusion . . . . . . . . . . . . . . . . . . .586
Chapter 18Limitations of Computing 587
18.1 Hardware 588
Limits on Arithmetic 588
Limits on Components 594
Limits on Communications 595
18.2 Software 596
Complexity of Software 596
Current Approaches to Software Quality 597
Notorious Software Errors 602
18.3 Problems 604
Comparing Algorithms 605
Turing Machines 612
Halting Problem 615
Classification of Algorithms 617
Glossary 625
Endnotes 651
Index 661

教学资源推荐
作者: (美)Mark Allen Weiss 著 佛罗里达国际大学
作者: [美]肯尼思·H. 罗森(Kenneth H. Rosen)著陈琼 改编
参考读物推荐
作者: Ian Foster, Carl Kesselman
作者: 高扬 卫峥 尹会生 著 万娟 插画设计