计算机科学概论(第10版)(图灵计算机科学丛书)
分類: 图书,计算机与互联网,计算机科学理论,计算机基础理论,
品牌: 布鲁克希尔(J.Glenn Brookshear)
基本信息·出版社:人民邮电出版社
·页码:411 页
·出版日期:2009年09月
·ISBN:7115211930/9787115211934
·条形码:9787115211934
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:图灵计算机科学丛书
产品信息有问题吗?请帮我们更新产品信息。
内容简介《计算机科学概论(第10版)》是计算机科学概论课程的经典教材,全书对计算机科学做了百科全书式的精彩阐述,充分展现了计算机科学的历史背景、发展历程和新的技术趋势。《计算机科学概论(第10版)》首先介绍的是信息编码及计算机体系结构的基本原理(第1章和第2章),进而讲述操作系统(第3章)和组网及因特网(第4章),接着探讨了算法、程序设计语言及软件工程(第5章至第7章),然后讨论数据抽象和数据库(第8章和第9章)方面的问题,第10章通过图形学讲述计算机技术的一些主要应用,第11章涉及人工智能,第12章通过对计算理论的介绍来结束全书。《计算机科学概论(第10版)》在内容编排上由具体到抽象逐步推进,很适合教学安排,每一个主题自然而然地引导出下一个主题。此外,书中还包含大量的图、表和实例,有助于读者对知识的了解与把握。《计算机科学概论(第10版)》适合作为高等院校计算机以及相关专业本科生的教材。
作者简介J.Glenn Brookshear,世界知名的计算机科学教育家。他在1975年获得新墨西哥州立大学博士学位后,创立了Marquette大学的计算机科学学位项目,并在该校任教至今、他的主要研究方向是计算理论。除了本书之外,他还著有Theory of Computation;Formal Languages,Automata,and Complexity。
编辑推荐《计算机科学概论(第10版)》由人民邮电出版社出版。
《计算机科学概论》(Computer Scierice:An Overview)多年来一直深受世界各国高校师生的欢迎,是许多著名大学(包括美国哈佛大学、麻省理工学院、普林斯顿大学、加州大学伯克利分校等)的首选教材。对我国的高校教学也产生了广泛影响。
《计算机科学概论(第10版)》以历史眼光,从发展的角度、当前的水平,以及现阶段的研究方向等几个方面,全景式描绘了计算机科学各个子学科的主要领域。在内容编排上,《计算机科学概论(第10版)》很好地兼顾了学科广度和主题深度,把握了最新的技术趋势。《计算机科学概论(第10版)》用算法、数据抽象等核心思想贯穿各个主题,并且充分展现了历史背景、发展历程和新的技术趋势,培养读者的大局观,为今后深入学习其他计算机专业教程打下坚实的基础。《计算机科学概论(第10版)》深入浅出、图文并茂,内容引人入胜,极易引发读者的兴趣,绝无一般教材的枯燥和晦涩。此外,《计算机科学概论(第10版)》教学手段多样、习题丰富,并且每章后都附有与本章内容相关的社会现实问题供读者思考和讨论,这些都很好地体现了作者强调培养学生分析问题能力的教学理念。
《计算机科学概论(第10版)》为最新的第10版,其中新增加了关于计算机图形学的一章(第10章),这一章主要介绍视频游戏和当今电影产业中使用的技术,为读者进一步了解虚拟现实打下了基础。此外,这一版对组网及因特网、软件工程、人工智能等章节也做了大幅修订,使内容与时俱进。
《计算机科学概论(第10版)》适合各个学科以及不同教育层次的读者,既适合国内高等院校用作计算机基础课教材,也可以供其他专业的读者作为计算机科学入门参考。
目录
第0章 绪论1
0.1 算法的作用1
0.2 计算机器的由来2
0.3 算法的科学6
0.4 抽象7
0.5 学习大纲7
0.6 社会影响8
0.7 社会问题10
课外阅读11
第1章 数据存储12
1.1 位和位存储12
1.1.1 布尔运算12
1.1.2 门和触发器13
1.1.3 十六进制记数法16
1.2 主存储器17
1.2.1 存储器结构17
1.2.2 存储器容量的度量18
1.3 海量存储器19
1.3.1 磁学系统20
1.3.2 光学系统22
1.3.3 闪存驱动器22
1.3.4 文件存储及检索23
1.4 用位模式表示信息24
1.4.1 文本的表示24
1.4.2 数值的表示25
1.4.3 图像的表示26
1.4.4 声音的表示27
*1.5 二进制系统29
1.5.1 二进制记数法29
1.5.2 二进制加法30
1.5.3 二进制中的小数31
1.6 整数存储32
1.6.1 二进制补码记数法33
1.6.2 余码记数法35
1.7 小数的存储37
1.7.1 浮点记数法37
1.7.2 截断误差38
1.8 数据压缩40
1.8.1 通用的数据压缩技术40
1.8.2 图像压缩41
1.8.3 音频和视频压缩43
1.9 通信差错44
1.9.1 奇偶校验位44
1.9.2 纠错编码45
复习题46
社会问题49
课外阅读50
第2章 数据操控51
2.1 计算机体系结构51
2.1.1 CPU基础知识51
2.1.2 存储程序概念52
2.2 机器语言53
2.2.1 指令系统53
2.2.2 一种演示用的机器语言54
2.3 程序执行57
2.3.1 程序执行的一个例子59
2.3.2 程序与数据61
2.4 算术/逻辑指令62
2.4.1 逻辑运算62
2.4.2 循环移位及移位运算64
2.4.3 算术运算65
2.5 与其他设备的通信66
2.5.1 控制器的作用66
2.5.2 直接内存存取67
2.5.3 握手68
2.5.4 流行的通信媒介68
2.5.5 通信速率68
2.6 其他体系结构69
2.6.1 流水线69
2.6.2 多处理器计算机70
复习题71
社会问题75
课外阅读76
第3章 操作系统77
3.1 操作系统的历史77
3.2 操作系统的体系结构80
3.2.1 软件概述80
3.2.2 操作系统组件81
3.2.3 系统启动83
3.3 协调机器的活动85
3.3.1 进程的概念85
3.3.2 进程管理85
3.4 处理进程间的竞争87
3.4.1 信号量87
3.4.2 死锁89
3.5 安全性90
3.5.1 来自机器外部的攻击91
3.5.2 来自机器内部的攻击91
复习题93
社会问题95
课外阅读95
第4章 组网及因特网96
4.1 网络基础96
4.1.1 网络分类96
4.1.2 协议97
4.1.3 网络互连99
4.1.4 进程间通信的方法101
4.1.5 分布式系统102
4.2 因特网102
4.2.1 因特网体系结构103
4.2.2 因特网编址104
4.2.3 因特网应用106
4.3 万维网109
4.3.1 万维网实现109
4.3.2 HTML110
4.3.3 XML113
4.3.4 客户端和服务器端的活动114
4.4 因特网协议115
4.4.1 因特网软件的分层方法115
4.4.2 TCP/IP协议簇118
4.5 安全性120
4.5.1 入侵的形式120
4.5.2 防护和对策121
4.5.3 加密123
4.5.4 网络安全的法律途径124
复习题126
社会问题128
课外阅读129
第5章 算法130
5.1 算法的概念130
5.1.1 概览130
5.1.2 算法的正式定义130
5.1.3 算法的抽象本质131
5.2 算法的表示132
5.2.1 原语132
5.2.2 伪代码134
5.3 算法的发现138
5.3.1 问题求解的艺术138
5.3.2 入门140
5.4 迭代结构142
5.4.1 顺序搜索法142
5.4.2 循环控制144
5.4.3 插入排序算法147
5.5 递归结构150
5.5.1 二分搜索算法150
5.5.2 递归控制155
5.6 有效性和正确性156
5.6.1 算法有效性156
5.6.2 软件验证159
复习题162
社会问题166
课外阅读167
第6章 程序设计语言168
6.1 历史回顾168
6.1.1 早期程序设计语言168
6.1.2 独立并超越机器170
6.1.3 程序设计范型171
6.2 传统的程序设计概念174
6.2.1 变量和数据类型175
6.2.2 数据结构177
6.2.3 常量和字面量178
6.2.4 赋值语句179
6.2.5 控制语句180
6.2.6 注释182
6.3 过程单元183
6.3.1 过程184
6.3.2 参数185
6.3.3 函数188
6.4 语言实现189
6.4.1 翻译过程189
6.4.2 软件开发包194
6.5 面向对象程序设计195
6.5.1 类和对象195
6.5.2 构造器198
6.5.3 附加特性199
6.6 程序设计中的并发活动200
6.7 说明性程序设计202
6.7.1 逻辑推演202
6.7.2 Prolog204
复习题206
社会问题209
课外阅读210
第7章 软件工程211
7.1 软件工程学科211
7.2 软件生命周期213
7.2.1 周期是个整体213
7.2.2 传统的开发阶段214
7.3 软件工程方法216
7.4 模块化217
7.4.1 模块的实现217
7.4.2 耦合220
7.4.3 内聚221
7.4.4 信息隐藏222
7.4.5 构件222
7.5 行业工具223
7.5.1 较老的工具223
7.5.2 统一建模语言224
7.5.3 设计模式228
7.6 质量保证229
7.6.1 质量保证的范围229
7.6.2 软件测试230
7.7 文档编制231
7.8 人机界面232
7.9 软件所有权和责任234
复习题236
社会问题238
课外阅读239
第8章 数据抽象241
8.1 数据结构基础241
8.1.1 数组241
8.1.2 表.栈和队列241
8.1.3 树242
8.2 相关概念244
8.2.1 抽象244
8.2.2 静态结构与动态结构244
8.2.3 指针245
8.3 数据结构的实现245
8.3.1 数组的存储245
8.3.2 表的存储248
8.3.3 栈和队列的存储250
8.3.4 二叉树的存储252
8.3.5 数据结构的操作255
8.4 一个简短案例的研究256
8.5 定制的数据类型260
8.5.1 用户自定义数据类型260
8.5.2 抽象数据类型261
8.6 类和对象263
8.7 机器语言中的指针264
复习题266
社会问题270
课外阅读271
第9章 数据库系统272
9.1 数据库基础272
9.1.1 数据库系统的重要性272
9.1.2 模式的作用273
9.1.3 数据库管理系统274
9.1.4 数据库模型275
9.2 关系模型275
9.2.1 关系设计中的问题276
9.2.2 关系运算279
9.2.3 SQL282
9.3 面向对象数据库284
9.4 维护数据库的完整性286
9.4.1 提交/回滚协议286
9.4.2 锁定287
9.5 传统的文件结构288
9.5.1 顺序文件288
9.5.2 索引文件291
9.5.3 散列文件291
9.6 数据挖掘294
9.7 数据库技术的社会影响296
复习题297
社会问题300
课外阅读301
第10章 计算机图形学302
10.1 计算机图形学的范围302
10.2 3D图形概述303
10.3 建模305
10.3.1 单个物体的建模305
10.3.2 整个场景的建模310
10.4 渲染311
10.4.1 光-表面交互311
10.4.2 裁剪.扫描转换和隐藏面的消除313
10.4.3 着色315
10.4.4 渲染-流水线硬件317
10.5 处理全局照明318
10.5.1 光线跟踪318
10.5.2 辐射度319
10.6 动画320
10.6.1 动画基础320
10.6.2 运动学和动力学321
10.6.3 动画制作过程322
复习题323
社会问题325
课外阅读325
第11章 人工智能326
11.1 智能与机器326
11.1.1 智能体326
11.1.2 研究方法328
11.1.3 图灵测试328
11.2 感知329
11.2.1 理解图像329
11.2.2 语言处理331
11.3 推理333
11.3.1 产生式系统334
11.3.2 搜索树336
11.3.3 启发338
11.4 其他研究领域342
11.4.1 知识的表达和处理342
11.4.2 学习343
11.5 人工神经网络345
11.5.1 基本特性345
11.5.2 训练人工神经网络346
11.5.3 联想记忆348
11.6 机器人学351
11.7 后果的思考353
复习题354
社会问题357
课外阅读358
第12章 计算理论360
12.1 函数及其计算360
12.2 图灵机362
12.2.1 图灵机原理362
12.2.2 丘奇-图灵论题364
12.3 通用程序设计语言365
12.3.1 BareBones语言365
12.3.2 用BareBones语言编程367
12.3.3 BareBones的通用性368
12.4 一个不可计算的函数369
12.4.1 停机问题369
12.4.2 停机问题的不可解性371
12.5 问题复杂性373
12.5.1 问题复杂性的度量374
12.5.2 多项式问题与非多项式问题377
12.5.3 NP问题378
12.6 公钥密码学380
12.6.1 模表示法381
12.6.2 RSA公钥密码系统381
复习题383
社会问题386
课外阅读387
附录A ASCII码388
附录B 处理二进制补码表示的电路389
附录C 一种简单的机器语言391
附录D 高级编程语言393
附录E 迭代结构与递归结构的等价性395
索引397
问题与练习答案(图灵网站下载)
……[看更多目录]
序言本书是计算机科学的入门教材。在力求保持学科广度的同时,还兼顾主题的深度,同时也将对所涉及的主题给出中肯的评价。
本书面向计算机科学以及其他各个学科的学生。大多数计算机科学专业的学生在最初的学习中都有这样一个误解,认为计算机科学就是程序设计和浏览网页,因为这基本上就是他们所看到的一切。实际上计算机科学远非如此。因此,在入门阶段,学生们需要了解他们主攻的这门学科所涉及内容的广度,这也正是本书的宗旨。本书使学生对计算机科学有一个总体的概念——在这个基础上,他们可以谙熟该领域今后其他课程的特点以及课程之间的相互关系。事实上,本书采用的综述方式也是自然科学入门教程的常见模式。
其他学科的学生如果想融入这个技术化社会,也需要具备这些宽泛的知识背景。适用于他们的计算机科学课程提供的应该是对整个领域很实用的剖析,而不仅仅是培训学生如何上网和使用一些流行的软件。当然这种培训也有其适用的地方,而本书的目的是用作教科书。正如一句中国谚语所说:“授人以鱼,不如授人以渔。”
因此,在写这本书时,保持对学生的可读性是主要目标。这样做的结果是先前的9个版本已经很成功地作为教科书广为使用,读者包括从高中生到研究生的各个教育层次众多专业的学生。本版仍将贯彻这一目标。
文摘插图:
第1章数据存储
本章中,我们学习有关计算机中数据表示和数据存储的内容。我们要研究的数据类型包括文本、数值、图像、音频和视频。除了传统计算外,本章的很多内容还涉及数字摄影、音频,视频录制和复制以及远程通信等领域。
我们首先要学习的是在计算机科学中信息如何编码和存储。第一步,我们要讨论计算机数据存储设备的基础知识,然后进一步研究如何进行信息编码并存储到系统内部。我们还将探讨现如今数据存储系统的各个分支,以及如何用数据压缩、纠错等技术来克服其不足。
1.1位和位存储
在今天的计算机中,信息是以0和1的模式编码的。这些数字称为位(bit,binary digits的缩写)。尽管你可能倾向于把它们与数值联系在一起,但它们的确只是些符号,其意义取决于正在处理的应用。有时用来表示数值;有时又代表字母表里的字符和标点符号;有时表示图像;有时还表示声音。
1.1.1布尔运算
为了理解单独的位在计算机中是如何进行存储和操作的,这里我们假设位0代表假值,位1代表真值,这样表示就可以把对位的运算看作是对真/假值的操作。数学家乔治·布尔(Gedrge—Boole,1815—1864)是逻辑数学领域的先驱,为了纪念他,人们把处理真,假值的运算命名为布尔运算(Boolean operation)。3个基本的布尔运算是AND(与)、OR(或)以及XOR(异或),见图1.1。这些运算类似于算术运算的乘法和加法,因为它们结合一对值(运算输入),然后得出第三个值(运算输出)。不过,与算术运算不同的是,布尔运算结合的是真/假值,而不是数值。