计算机科学导论(原书第2版)
作者 : Behrouz Forouzan;Firouz Mosharraf
译者 : 刘艺 瞿高峰
丛书名 : 计算机科学丛书
出版日期 : 2008-12-11
ISBN : 7-111-13159-5
定价 : 36.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 390
开本 : 16开
原书名 : Foundations of Computer Science Second Edition
原出版社: Cengage
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是基于美国计算机学会(ACM)推荐的CS0课程设计的,涵盖了计算机科学的所有领域,堪称计算机百科全书。本书延续了Forouzan一贯的风格,以通俗易懂的方式全面阐述了计算机科学的方方面面,轻松勾画出计算机科学体系的框架,为有志于IT行业的读者奠定计算机科学知识的基础,铺设深入学习专业理论的桥梁。

本书特点
  ●强调概念而不是数学模型和技术细节。
  ●通过大量的图片、图表和演示来加深读者对内容的理解。
  ●通过范例讲解概念和相关的数学模型。
  ●通过关键术语、小结和练习帮助读者学习和复习。
  ●本书网站(http://www.cengage.co.uk/forouzan)上有奇数号复习题、多项选择题和课后练习题的答案,还提供了勘误等材料。

图书特色

图书前言

计算机在我们的日常生活中扮演了重要的角色,而且在未来仍将继续。计算机科学是一门充满了挑战和发展机遇的年轻学科,计算机网络将地球上每个角落的人们连接到一起;虚拟现实创造了炫目的三维图像;宇宙空间探险的成功也部分归功于计算机的发展;计算机建立的特技效果改变了电影工业;计算机在遗传学研究中也扮演了重要的角色。
本书是基于美国计算机学会(ACM)推荐的CS0课程设计的,涵盖了计算机科学的所有领域。
本书特点
本书的一些特色不仅令其独树一帜,同时使初学者更易于理解。
概念
本书始终强调概念比数学模型更重要,我们认为对概念的理解必然左右对模型的理解。
图文并茂
全书有将近400幅图片,虽然这样增加了书的篇幅,但增进了对文字的理解。
算法
本版中增加了十几个算法,以便读者熟悉问题求解和编程技术。
UML
本书中使用了UML图,因为它已经成为业界的事实标准。
重点
如下面所示的加阴影的内容是总结的重点,这些重点是学生在复习考试时需要用到的。
计算机存储正数和负数的方法是有区别的。
例子
我们尽可能地运用例子来表述概念和数学模型。
章末材料
每一章末的材料包括4个部分:推荐读物、关键术语、小结和练习。
推荐读物 给出本章推荐书目列表。
关键术语 列出了本章介绍的重要术语,每一个关键术语在术语表中都有定义。
小结 包括对本章中所有关键内容的简明概括。
练习 每个练习包括三部分内容:复习题、多项选择题和课后练习题。
复习题:测试对本章中所有要点和概念的理解。
多项选择题:测试对材料的理解。
课后练习题:测试学生能否运用概念和公式。
术语表
书后给出了所有关键术语的列表。
练习答案
奇数号复习题、多项选择题和课后练习题的答案可以从本书网站找到:http://www.cengage .co.uk/forouzan。
教辅材料
本书网站除了为教师提供了所有复习题、多项选择题和课后练习题的答案以外,还提供了电子课件、勘误等。
新版的变化
修订的内容
第2、3、4、5、7、9和10章根据评审者的建议进行了修订。大多数章末练习也进行了修订和增补。
重写的内容
重写了第6、10和16章。
新增的内容
第18章(人工智能)是本版新增的。此外,还新增了4个附录:附录E(布尔代数和逻辑电路)、附录F(C、C++和Java程序示例)、附录G(数学复习)以及附录H(错误检测和纠正)。
合并或替换的内容
第1版中的附录A和B被合并成新的附录A,新的附录B(UML)取代了原先的附录C(流程图),附录F(离散余弦变换)现在是新附录G(数学复习)的一部分。
致谢
本教材的出版离不开众人的支持。
特别要感谢为第2版做出贡献的评审者,他们是:威尔士大学的John Newman,Birbeck学院的Steve Maybank,斯特灵大学的Mario Kolberg,伍斯特大学的Colin Price,伦敦城市大学的Boris Cogan,希尔德斯海姆大学的Thomas Mandl,南非大学的Daphne Becker,阿卜杜拉国王大学的Lubna Fekry和Osama Abulnaja,利物浦大学的Katie Atkinson。
同样感谢Cengage出版社的人:Allie、Matthew和Gaynor,同时还感谢Wordmongers的Steve Rickaby高度重视手稿。
最后,最应该感谢的是我们的家人和朋友。在我们忍受写作之苦的过程中,家人和朋友同样忍受着我们的缺席。我们只能希望他们看到最后的作品时,感到自己的牺牲是值得的。

  Behrouz Forouzan
  Firouz Mosharraf

封底文字

本书是基于美国计算机学会(ACM)推荐的CS0课程设计的,涵盖了计算机科学的所有领域,堪称计算机百科全书。本书延续了Forouzan一贯的风格,以通俗易懂的方式全面阐述了计算机科学的方方面面,轻松勾画出计算机科学体系的框架,为有志于IT行业的读者奠定计算机科学知识的基础,铺设深入学习专业理论的桥梁。

本书特点
  ●强调概念而不是数学模型和技术细节。
  ●通过大量的图片、图表和演示来加深读者对内容的理解。
  ●通过范例讲解概念和相关的数学模型。
  ●通过关键术语、小结和练习帮助读者学习和复习。
  ●本书网站(http://www.cengage.co.uk/forouzan)上有奇数号复习题、多项选择题和课后练习题的答案,还提供了勘误等材料。

作者简介

Behrouz Forouzan;Firouz Mosharraf:Behrouz Forouzan: 毕业于加州大学艾尔温分校,现在是迪安那大学教授,从事计算机信息系统专业的课程设置。此外,他还是多家公司的系统开发咨询顾问。除本书外,Forouzan还著有多部成功的编程与网络方面的书,包括《TCP/IP Protocol Suite》和《Local Area Networks》等。
Firouz Mosharraf: 美国Rio Hondo学院工程系教授。

译者简介

刘艺 瞿高峰:暂无简介

译者序

《计算机科学导论》是一本国外IT相关专业大学生的基础课教材,通常供大学低年级学生使用。该教材是一本百科全书式的计算机专业入门读物,涉及计算机科学的方方面面。虽然读者对象是计算机专业的学生,但这本书却深入浅出,引人入胜,绝无一般教科书的枯燥和晦涩。作者的用意显然是为了轻松勾画出计算机科学体系的框架,为有志于IT行业的学生奠定计算机科学知识的基础,铺设进一步深入专业理论学习的桥梁。因此,作者在这本书中强调的是概念而不是数学模型和技术细节,并通过大量的图片、图表和演示来增强读者对内容的理解和知识的掌握,通过范例讲解概念和相关的数学模型,通过关键术语、小结和练习帮助读者学习和复习。
  本书是基于美国计算机学会(ACM)推荐的CS0课程设计的,涵盖了计算机科学的所有领域。这本书既适合国内的高等院校用作计算机基础课教材,也可以供有意在计算机方面发展的非计算机专业读者作为入门参考书。本书作为一本成熟的教材已经被国外许多大学选用,引进翻译显然对国内的计算机教学有着重要的参考价值。
本书第1版翻译出版后被国内许多重点大学选用,受到好评。我们有幸继续翻译第2版,不但在第一时间为读者奉上译稿,而且还在前一版的基础上精益求精,对一些术语和字句进行推敲和斟酌,力求完美。在翻译过程中,我们还对原书的一些疏漏进行了更正。
  本书涉及面广,技术内容新,有一定的翻译难度,为此我们不敢疏忽,如果读者在阅读中发现我们的工作有不足之处,敬请指正。
  另外,参加翻译和校对工作的人员除封面署名外还有曹裕华、蔡敏、许大琴、洪蕾、吴英、吴永逸、刘藩等,在此表示感谢。

图书目录

出版者的话
译者序
前言
第1章 绪论 1
1.1 图灵模型 1
1.1.1 数据处理器 1
1.1.2 可编程数据处理器 2
1.1.3 通用图灵机 2
1.2 冯·诺伊曼模型 3
1.2.1 4个子系统 3
1.2.2 存储的程序概念 3
1.2.3 指令的顺序执行 4
1.3 计算机组成 4
1.3.1 计算机硬件 4
1.3.2 数据 4
1.3.3 计算机软件 4
1.4 历史 6
1.4.1 机械计算机器(1930年以前) 6
1.4.2 电子计算机的诞生
(1930~1950年) 6
1.4.3 计算机的诞生(1950年至今) 7
1.5 社会问题和道德问题 7
1.5.1 社会问题 8
1.5.2 道德问题 8
1.6 计算机科学作为一门学科 8
1.7 课程纲要 9
1.8 推荐读物 9
1.9 关键术语 9
1.10 小结 10
1.11 练习 10
第2章 数字系统 12
2.1 引言 12
2.2 位置化数字系统 12
2.2.1 十进制系统(以10为底) 13
2.2.2 二进制系统(以2为底) 14
2.2.3 十六进制系统(以16为底) 15
2.2.4 八进制系统(以8为底) 16
2.2.5 4种位置化系统小结 16
2.2.6 转换 17
2.3 非位置化数字系统 22
2.4 推荐读物 23
2.5 关键术语 23
2.6 小结 24
2.7 练习 24
第3章 数据存储 28
3.1 数据类型 28
3.2 存储数字 30
3.2.1 存储整数 30
3.2.2 存储实数 36
3.3 存储文本 41
3.4 存储音频 42
3.4.1 采样 43
3.4.2 量化 43
3.4.3 编码 43
3.4.4 声音编码标准 43
3.5 存储图像 44
3.5.1 光栅图 44
3.5.2 矢量图 45
3.6 存储视频 45
3.7 推荐读物 45
3.8 关键术语 46
3.9 小结 46
3.10 练习 47
第4章 数据运算 51
4.1 逻辑运算 51
4.1.1 位层次上的逻辑运算 51
4.1.2 模式层次上的逻辑运算 53
4.2 移位运算 54
4.2.1 逻辑移位运算 55
4.2.2 算术移位运算 55
4.3 算术运算 56
4.3.1 整数的算术运算 56
4.3.2 实数的算术运算 60
4.4 推荐读物 63
4.5 关键术语 63
4.6 小结 63
4.7 练习 64
第5章 计算机组成 67
5.1 中央处理单元 67
5.1.1 算术逻辑单元 68
5.1.2 寄存器 68
5.1.3 控制单元 69
5.2 主存储器 69
5.2.1 地址空间 69
5.2.2 存储器的类型 70
5.2.3 存储器的层次结构 71
5.2.4 高速缓冲存储器 71
5.3 输入/输出子系统 72
5.3.1 非存储设备 72
5.3.2 存储设备 72
5.4 子系统的互连 76
5.4.1 CPU和存储器的连接 76
5.4.2 I/O设备的连接 77
5.4.3 输入/输出设备的寻址 79
5.5 程序执行 80
5.5.1 机器周期 80
5.5.2 输入/输出操作 81
5.6 不同的体系结构 83
5.6.1 CISC 83
5.6.2 RISC 83
5.6.3 流水线 83
5.6.4 并行处理 84
5.7 简单计算机 86
5.7.1 指令集 87
5.7.2 处理指令 88
5.7.3 一个例子 88
5.7.4 另一个例子 92
5.8 推荐读物 93
5.9 关键术语 93
5.10 小结 94
5.11 练习 95
第6章 计算机网络 98
6.1 引言 98
6.1.1 网络标准 98
6.1.2 物理结构 98
6.1.3 网络分类 100
6.1.4 互联网 101
6.1.5 因特网 101
6.2 TCP/IP协议族 102
6.3 层 103
6.3.1 应用层 103
6.3.2 传输层 104
6.3.3 网络层 107
6.3.4 数据链路层 109
6.3.5 物理层 111
6.3.6 层的总结 111
6.4 因特网应用 112
6.4.1 电子邮件 112
6.4.2 文件传输协议 115
6.4.3 远程登录—TELNET 115
6.4.4 万维网 116
6.4.5 其他因特网应用 121
6.5 推荐读物 123
6.6 关键术语 123
6.7 小结 124
6.8 练习 125
第7章 操作系统 127
7.1 引言 127
7.2 演化 128
7.2.1 批处理系统 128
7.2.2 分时系统 128
7.2.3 个人系统 129
7.2.4 并行系统 129
7.2.5 分布式系统 129
7.2.6 实时系统 129
7.3 组成部分 129
7.3.1 用户界面 130
7.3.2 内存管理器 130
7.3.3 进程管理器 132
7.3.4 设备管理器 136
7.3.5 文件管理器 137
7.4 主流操作系统 137
7.4.1 UNIX 137
7.4.2 Linux 138
7.4.3 Windows NT/2000/XP 139
7.5 推荐读物 140
7.6 关键术语 140
7.7 小结 141
7.8 练习 141
第8章 算法 144
8.1 概念 144
8.1.1 非正式定义 144
8.1.2 示例 144
8.1.3 定义动作 145
8.1.4 细化 145
8.1.5 泛化 146
8.2 三种结构 146
8.2.1 顺序 147
8.2.2 判断 147
8.2.3 循环 147
8.3 算法的表示 147
8.3.1 UML 147
8.3.2 伪代码 148
8.4 更正式的定义 150
8.4.1 有序集合 150
8.4.2 明确步骤 150
8.4.3 产生结果 150
8.4.4 在有限的时间内终止 150
8.5 基本算法 150
8.5.1 求和 151
8.5.2 乘积 151
8.5.3 最大和最小 151
8.5.4 排序 151
8.5.5 查找 155
8.6 子算法 156
8.7 递归 157
8.7.1 迭代的定义 157
8.7.2 递归的定义 157
8.8 推荐读物 159
8.9 关键术语 159
8.10 小结 159
8.11 练习 160
第9章 程序设计语言 163
9.1 演化 163
9.1.1 机器语言 163
9.1.2 汇编语言 164
9.1.3 高级语言 164
9.2 翻译 165
9.2.1 编译 165
9.2.2 解释 165
9.2.3 翻译过程 165
9.3 编程模式 166
9.3.1 过程式模式 166
9.3.2 面向对象模式 169
9.3.3 函数式模式 170
9.3.4 说明式模式 171
9.4 共同概念 172
9.4.1 标识符 172
9.4.2 数据类型 172
9.4.3 变量 173
9.4.4 字面值 173
9.4.5 常量 173
9.4.6 输入和输出 174
9.4.7 表达式 174
9.4.8 语句 175
9.4.9 子程序 177
9.5 推荐读物 179
9.6 关键术语 179
9.7 小结 180
9.8 练习 181
第10章 软件工程 183
10.1 软件生命周期 183
10.2 分析阶段 184
10.2.1 面向过程分析 185
10.2.2 面向对象分析 186
10.3 设计阶段 187
10.3.1 面向过程设计 187
10.3.2 面向对象设计 187
10.4 实现阶段 188
10.4.1 语言的选择 188
10.4.2 软件质量 188
10.5 测试阶段 189
10.5.1 白盒测试 189
10.5.2 黑盒测试 191
10.6 文档 191
10.6.1 用户文档 191
10.6.2 系统文档 191
10.6.3 技术文档 192
10.7 推荐读物 192
10.8 关键术语 192
10.9 小结 192
10.10 练习 193
第11章 数据结构 195
11.1 数组 195
11.1.1 数组名与元素名 197
11.1.2 多维数组 197
11.1.3 存储配置 197
11.1.4 数组操作 198
11.1.5 数组的应用 199
11.2 记录 199
11.2.1 记录名与域名 200
11.2.2 记录与数组的比较 200
11.2.3 记录数组 200
11.2.4 数组与记录数组 201
11.3 链表 201
11.3.1 数组与链表 202
11.3.2 链表名与节点名 202
11.3.3 链表操作 203
11.3.4 链表的应用 210
11.4 推荐读物 210
11.5 关键术语 210
11.6 小结 210
11.7 练习 211
第12章 抽象数据类型 213
12.1 背景 213
12.1.1 简单抽象数据类型 213
12.1.2 复杂抽象数据类型 213
12.1.3 定义 214
12.1.4 抽象数据类型的模型 214
12.1.5 实现 214
12.2 栈 215
12.2.1 栈的操作 215
12.2.2 栈的抽象数据类型 216
12.2.3 栈的应用 216
12.2.4 栈的实现 218
12.3 队列 218
12.3.1 队列的操作 219
12.3.2 队列的抽象数据类型 220
12.3.3 队列的应用 220
12.3.4 队列的实现 221
12.4 广义线性表 222
12.4.1 广义线性表的操作 222
12.4.2 广义线性表的抽象数据类型 224
12.4.3 广义线性表的应用 224
12.4.4 广义线性表的实现 225
12.5 树 226
12.6 二叉树 227
12.6.1 二叉树的递归定义 227
12.6.2 二叉树的操作 227
12.6.3 二叉树的应用 229
12.6.4 二叉树的实现 229
12.7 二叉搜索树 229
12.7.1 二叉搜索树的抽象数据类型 230
12.7.2 二叉搜索树的实现 230
12.8 图 231
12.9 推荐读物 231
12.10 关键术语 232
12.11 小结 232
12.12 练习 233
第13章 文件结构 235
13.1 存取方法 235
13.1.1 顺序存取 235
13.1.2 随机存取 235
13.2 顺序文件 236
13.3 索引文件 237
13.4 散列文件 238
13.4.1 散列方法 239
13.4.2 冲突 240
13.5 目录 242
13.6 文本文件与二进制文件 243
13.6.1 文本文件 244
13.6.2 二进制文件 244
13.7 推荐读物 244
13.8 关键术语 244
13.9 小结 245
13.10 练习 245
第14章 数据库 248
14.1 引言 248
14.1.1 定义 248
14.1.2 数据库的优点 248
14.2 数据库管理系统 249
14.3 数据库体系结构 250
14.3.1 内层 250
14.3.2 概念层 250
14.3.3 外层 250
14.4 数据库模型 250
14.4.1 层次模型 250
14.4.2 网状模型 251
14.4.3 关系模型 251
14.5 关系数据库模型 251
14.6 关系的操作 252
14.6.1 结构化查询语言 252
14.6.2 插入 252
14.6.3 删除 253
14.6.4 更新 253
14.6.5 选择 253
14.6.6 投影 254
14.6.7 连接 254
14.6.8 并 254
14.6.9 交 255
14.6.10 差 256
14.7 数据库设计 257
14.7.1 实体关系模型 257
14.7.2 从E-R图到关系 257
14.7.3 规范化 258
14.8 其他数据库模型 259
14.8.1 分布式数据库 259
14.8.2 面向对象数据库 260
14.9 推荐读物 260
14.10 关键术语 261
14.11 小结 261
14.12 练习 262
第15章 数据压缩 264
15.1 无损压缩 264
15.1.1 游程长度编码 265
15.1.2 赫夫曼编码 265
15.1.3 Lempel Ziv编码 267
15.2 有损压缩 270
15.2.1 图像压缩:JEPG 270
15.2.2 视频压缩:MPEG 272
15.2.3 音频压缩 273
15.3 推荐读物 274
15.4 关键术语 274
15.5 小结 274
15.6 练习 275
第16章 安全 277
16.1 引言 277
16.1.1 安全目标 277
16.1.2 攻击 278
16.1.3 安全服务 279
16.1.4 技术 279
16.2 对称密钥密码术 280
16.2.1 传统密码 281
16.2.2 现代对称密钥密码 282
16.3 非对称密钥密码术 283
16.4 对称密钥方法和非对称密钥方法的
比较 284
16.4.1 秘密记号的数目 284
16.4.2 两个系统的一个共同需要 285
16.5 其他安全服务 285
16.5.1 消息完整性 285
16.5.2 消息验证 286
16.5.3 数字签名 287
16.5.4 实体验证 290
16.6 密钥管理 291
16.6.1 对称密钥分发 291
16.6.2 公钥分发 292
16.7 推荐读物 293
16.8 关键术语 293
16.9 小结 294
16.10 练习 294
第17章 计算理论 297
17.1 简单语言 297
17.1.1 递增语句 297
17.1.2 递减语句 298
17.1.3 循环语句 298
17.1.4 简单语言的威力 298
17.2 图灵机 300
17.2.1 图灵机组成部件 300
17.2.2 对简单语言的模拟 302
17.2.3 邱奇-图灵论题 306
17.3 歌德尔数 306
17.3.1 表示一个程序 307
17.3.2 翻译一个数字 307
17.4 停机问题 307
17.5 可解问题和不可解问题 309
17.5.1 不可解问题 309
17.5.2 可解问题 309
17.5.3 可解问题的复杂度 309
17.6 推荐读物 310
17.7 关键术语 310
17.8 小结 310
17.9 练习 311
第18章 人工智能 313
18.1 引言 313
18.1.1 什么是人工智能 313
18.1.2 人工智能简史 313
18.1.3 图灵测试 313
18.1.4 智能体 314
18.1.5 编程语言 314
18.2 知识表示 314
18.2.1 语义网 314
18.2.2 框架 315
18.2.3 谓词逻辑 316
18.2.4 基于规则的系统 320
18.3 专家系统 321
18.3.1 抽取知识 321
18.3.2 抽取事实 321
18.4 感知 322
18.4.1 图像处理 323
18.4.2 语言理解 324
18.5 搜索 326
18.6 神经网络 329
18.6.1 生物神经元 330
18.6.2 感知器 330
18.6.3 多层网络 331
18.6.4 应用 331
18.7 推荐读物 331
18.8 关键术语 331
18.9 小结 332
18.10 练习 332
附录A Unicode 335
附录B UML 339
附录C 伪代码 348
附录D 结构图 351
附录E 布尔代数和逻辑电路 354
附录F C、C++和Java程序示例 367
附录G 数学复习 374
附录H 错误检测和纠正 380

教学资源推荐
作者: Charles Petzold
作者: (美)June Jamrich Parsons, Dan Oja 著
作者: Zhigang Xiang,Roy Plastock
参考读物推荐
作者: 邹恒明 著
作者: (美)Jill T.Freeze
作者: [美]戴维·埃文斯(David Evans),弗拉基米尔·科列斯尼科夫( Vladimir Kolesnikov),迈克·罗苏莱克(Mike Rosulek)著