本书多年来一直深受世界各国高校师生的欢迎,是美国哈佛大学、麻省理工学院、普林斯顿大学、加州大学伯克利分校等许多著名大学的首选教材,对我国的高校教学也产生了广泛影响。
本 书以历史眼光,从发展的角度、当前的水平以及现阶段的研究方向等几个方面,全景式描绘了计算机科学各个子学科的主要领域。在内容编排上,本书很好地兼顾了 学科广度和主题深度,把握了最新的技术趋势。本书用算法、数据抽象等核心思想贯穿各个主题,并且充分展现了历史背景、发展历程和新的技术趋势,培养读者的 大局观,为其今后深入学习其他计算机专业课程打下坚实的基础。
本书深入浅出、图文并茂,内容引人入胜,极易引发读者的兴趣,绝无一般教材的枯燥和晦涩。此外,本书的教学手段多样、习题丰富,并且每章后都附有与本章内容相关的社会现实问题供读者思考和讨论,这些都很好地体现了作者强调培养学生分析问题能力的教学理念...
目录
- 第0 章 绪论 1
- 0.1 算法的作用 1
- 0.2 计算机器的由来 3
- 0.3 算法的科学 7
- 0.4 抽象 8
- 0.5 学习大纲 8
- 0.6 社会影响 9
- 社会问题 11
- 课外阅读 12
- 第1 章 数据存储 13
- 1.1 位和位存储 13
- 1.1.1 布尔运算 13
- 1.1.2 门和触发器 14
- 1.1.3 十六进制记数法 17
- 1.2 主存储器 18
- 1.2.1 存储器结构 18
- 1.2.2 存储器容量的度量 19
- 1.3 海量存储器 20
- 1.3.1 磁学系统 20
- 1.3.2 光学系统 22
- 1.3.3 闪存驱动器 23
- 1.3.4 文件存储及检索 24
- 1.4 用位模式表示信息 25
- 1.4.1 文本的表示 25
- 1.4.2 数值的表示 26
- 1.4.3 图像的表示 27
- 1.4.4 声音的表示 28
- *1.5 二进制系统 29
- 1.5.1 二进制记数法 29
- 1.5.2 二进制加法 31
- 1.5.3 二进制中的小数 32
- *1.6 整数存储 33
- 1.6.1 二进制补码记数法 33
- 1.6.2 余码记数法 36
- *1.7 小数的存储 37
- 1.7.1 浮点记数法 37
- 1.7.2 截断误差 39
- *1.8 数据压缩 41
- 1.8.1 通用的数据压缩技术 41
- 1.8.2 图像压缩 43
- 1.8.3 音频和视频压缩 44
- *1.9 通信差错 45
- 1.9.1 奇偶校验位 45
- 1.9.2 纠错编码 46
- 复习题 47
- 社会问题 50
- 课外阅读 51
- 第2 章 数据操控 52
- 2.1 计算机体系结构 52
- 2.1.1 CPU基础知识 52
- 2.1.2 存储程序概念 53
- 2.2 机器语言 54
- 2.2.1 指令系统 54
- 2.2.2 一种演示用的机器语言 56
- 2.3 程序执行 58
- 2.3.1 程序执行的一个例子 60
- 2.3.2 程序与数据 62
- *2.4 算术/逻辑指令 63
- 2.4.1 逻辑运算 63
- 2.4.2 循环移位及移位运算 65
- 2.4.3 算术运算 66
- *2.5 与其他设备通信 67
- 2.5.1 控制器的作用 67
- 2.5.2 直接内存存取 68
- 2.5.3 握手 69
- 2.5.4 流行的通信媒介 69
- 2.5.5 通信速率 70
- *2.6 其他体系结构 70
- 2.6.1 流水线 70
- 2.6.2 多处理器计算机 71
- 复习题 72
- 社会问题 77
- 课外阅读 77
- 第3 章 操作系统 79
- 3.1 操作系统的历史 79
- 3.2 操作系统的体系结构 82
- 3.2.1 软件概述 82
- 3.2.2 操作系统组件 84
- 3.2.3 系统启动 86
- 3.3 协调机器的活动 88
- 3.3.1 进程的概念 88
- 3.3.2 进程管理 88
- *3.4 处理进程间的竞争 90
- 3.4.1 信号量 90
- 3.4.2 死锁 91
- 3.5 安全性 93
- 3.5.1 来自机器外部的攻击 93
- 3.5.2 来自机器内部的攻击 94
- 复习题 95
- 社会问题 98
- 课外阅读 98
- 第4 章 组网及因特网 99
- 4.1 网络基础 99
- 4.1.1 网络分类 99
- 4.1.2 协议 100
- 4.1.3 网络互连 102
- 4.1.4 进程间通信的方法 104
- 4.1.5 分布式系统 105
- 4.2 因特网 106
- 4.2.1 因特网体系结构 106
- 4.2.2 因特网编址 108
- 4.2.3 因特网应用 109
- 4.3 万维网 113
- 4.3.1 万维网实现 113
- 4.3.2 HTML 114
- 4.3.3 XML 117
- 4.3.4 客户端和服务器端的活动 118
- *4.4 因特网协议 119
- 4.4.1 因特网软件的分层方法 119
- 4.4.2 TCP/IP协议簇 122
- 4.5 安全性 123
- 4.5.1 入侵的形式 124
- 4.5.2 防护和对策 125
- 4.5.3 加密 126
- 4.5.4 网络安全的法律途径 128
- 复习题 130
- 社会问题 131
- 课外阅读 132
- 第5 章 算法 134
- 5.1 算法的概念 134
- 5.1.1 概览 134
- 5.1.2 算法的正式定义 135
- 5.1.3 算法的抽象本质 136
- 5.2 算法的表示 136
- 5.2.1 原语 137
- 5.2.2 伪代码 139
- 5.3 算法的发现 142
- 5.3.1 问题求解的艺术 142
- 5.3.2 入门 144
- 5.4 迭代结构 146
- 5.4.1 顺序搜索法 147
- 5.4.2 循环控制 148
- 5.4.3 插入排序算法 151
- 5.5 递归结构 154
- 5.5.1 二分搜索算法 154
- 5.5.2 递归控制 159
- 5.6 有效性和正确性 160
- 5.6.1 算法有效性 160
- 5.6.2 软件验证 163
- 复习题 167
- 社会问题 171
- 课外阅读 171
- 第6 章 程序设计语言 172
- 6.1 历史回顾 172
- 6.1.1 早期程序设计语言 172
- 6.1.2 独立并超越机器 174
- 6.1.3 程序设计范型 175
- 6.2 传统的程序设计概念 179
- 6.2.1 变量和数据类型 180
- 6.2.2 数据结构 181
- 6.2.3 常量和字面量 182
- 6.2.4 赋值语句 183
- 6.2.5 控制语句 184
- 6.2.6 注释 187
- 6.3 过程单元 188
- 6.3.1 过程 188
- 6.3.2 参数 189
- 6.3.3 函数 192
- 6.4 语言实现 193
- 6.4.1 翻译过程 193
- 6.4.2 软件开发包 198
- 6.5 面向对象程序设计 199
- 6.5.1 类和对象 199
- 6.5.2 构造器 202
- 6.5.3 附加特性 202
- *6.6 程序设计中的并发活动 204
- *6.7 说明性程序设计 206
- 6.7.1 逻辑推演 206
- 6.7.2 Prolog 208
- 复习题 210
- 社会问题 213
- 课外阅读 214
- 第7 章 软件工程 215
- 7.1 软件工程学科 215
- 7.2 软件生命周期 217
- 7.2.1 周期是个整体 217
- 7.2.2 传统的开发阶段 218
- 7.3 软件工程方法 220
- 7.4 模块化 221
- 7.4.1 模块式实现 222
- 7.4.2 耦合 224
- 7.4.3 内聚 225
- 7.4.4 信息隐藏 225
- 7.4.5 构件 226
- 7.5 行业工具 227
- 7.5.1 较老的工具 227
- 7.5.2 统一建模语言 228
- 7.5.3 设计模式 232
- 7.6 质量保证 233
- 7.6.1 质量保证的范围 233
- 7.6.2 软件测试 234
- 7.7 文档编制 235
- 7.8 人机界面 236
- 7.9 软件所有权和责任 238
- 复习题 240
- 社会问题 242
- 课外阅读 243
- 第8 章 数据抽象 244
- 8.1 数据结构基础 244
- 8.1.1 数组 244
- 8.1.2 列表、栈和队列 245
- 8.1.3 树 245
- 8.2 相关概念 247
- 8.2.1 抽象 247
- 8.2.2 静态结构与动态结构 247
- 8.2.3 指针 248
- 8.3 数据结构的实现 248
- 8.3.1 数组的存储 248
- 8.3.2 列表的存储 251
- 8.3.3 栈和队列的存储 254
- 8.3.4 二叉树的存储 255
- 8.3.5 数据结构的操作 257
- 8.4 一个简短案例 259
- 8.5 定制的数据类型 263
- 8.5.1 用户自定义数据类型 263
- 8.5.2 抽象数据类型 264
- *8.6 类和对象 266
- *8.7 机器语言中的指针 267
- 复习题 269
- 社会问题 273
- 课外阅读 274
- 第9 章 数据库系统 275
- 9.1 数据库基础 275
- 9.1.1 数据库系统的重要性 275
- 9.1.2 模式的作用 276
- 9.1.3 数据库管理系统 277
- 9.1.4 数据库模型 278
- 9.2 关系模型 279
- 9.2.1 关系设计中的问题 279
- 9.2.2 关系运算 282
- 9.2.3 SQL 285
- *9.3 面向对象数据库 287
- *9.4 维护数据库的完整性 289
- 9.4.1 提交/回滚协议 289
- 9.4.2 锁定 290
- *9.5 传统的文件结构 291
- 9.5.1 顺序文件 291
- 9.5.2 索引文件 294
- 9.5.3 散列文件 294
- 9.6 数据挖掘 297
- 9.7 数据库技术的社会影响 299
- 复习题 300
- 社会问题 303
- 课外阅读 304
- 第10 章 计算机图形学 305
- 10.1 计算机图形学的范围 305
- 10.2 3D图形概述 307
- 10.3 建模 308
- 10.3.1 单个物体的建模 308
- 10.3.2 整个场景的建模 313
- 10.4 渲染 314
- 10.4.1 光-表面交互 314
- 10.4.2 裁剪、扫描转换和隐藏面的消除 316
- 10.4.3 着色 319
- 10.4.4 渲染-流水线硬件 320
- *10.5 处理全局照明 321
- 10.5.1 光线跟踪 321
- 10.5.2 辐射度 323
- 10.6 动画 323
- 10.6.1 动画基础 323
- 10.6.2 运动学和动力学 325
- 10.6.3 动画制作过程 326
- 复习题 326
- 社会问题 328
- 课外阅读 329
- 第11 章 人工智能 330
- 11.1 智能与机器 330
- 11.1.1 智能体 330
- 11.1.2 研究方法 332
- 11.1.3 图灵测试 332
- 11.2 感知 333
- 11.2.1 理解图像 333
- 11.2.2 语言处理 335
- 11.3 推理 338
- 11.3.1 产生式系统 338
- 11.3.2 搜索树 340
- 11.3.3 启发式搜索 342
- 11.4 其他研究领域 346
- 11.4.1 知识的表达和处理 346
- 11.4.2 学习 347
- 11.4.3 遗传算法 349
- 11.5 人工神经网络 349
- 11.5.1 基本特性 350
- 11.5.2 训练人工神经网络 351
- 11.5.3 联想记忆 353
- 11.6 机器人学 356
- 11.7 后果的思考 358
- 复习题 359
- 社会问题 363
- 课外阅读 364
- 第12 章 计算理论 365
- 12.1 函数及其计算 365
- 12.2 图灵机 367
- 12.2.1 图灵机的原理 367
- 12.2.2 丘奇-图灵论题 369
- 12.3 通用程序设计语言 370
- 12.3.1 Bare Bones语言 370
- 12.3.2 用Bare Bones语言编程 372
- 12.3.3 Bare Bones的通用性 373
- 12.4 一个不可计算的函数 375
- 12.4.1 停机问题 375
- 12.4.2 停机问题的不可解性 376
- 12.5 问题的复杂性 379
- 12.5.1 问题复杂性的度量 379
- 12.5.2 多项式问题与非多项式问题 382
- 12.5.3 NP问题 383
- *12.6 公钥密码学 386
- 12.6.1 模表示法 386
- 12.6.2 RSA公钥加密系统 387
- 复习题 389
- 社会问题 392
- 课外阅读 392
- 附录A ASCII 码 394
- 附录B 处理二进制补码表示的电路 395
- 附录C 一种简单的机器语言 397
- 附录D 高级编程语言 399
- 附录E 迭代结构与递归结构的等价性 401
- 索引 403
- 问题与练习答案