具体描述
本书多年来一直深受世界各国高校师生的欢迎,是美国哈佛大学、麻省理工学院、普林斯顿大学、加州大学伯克利分校等许多著名大学的首选教材,对我国的高校教学也产生了广泛影响。
本 书以历史眼光,从发展的角度、当前的水平以及现阶段的研究方向等几个方面,全景式描绘了计算机科学各个子学科的主要领域。在内容编排上,本书很好地兼顾了 学科广度和主题深度,把握了最新的技术趋势。本书用算法、数据抽象等核心思想贯穿各个主题,并且充分展现了历史背景、发展历程和新的技术趋势,培养读者的 大局观,为其今后深入学习其他计算机专业课程打下坚实的基础。
本书深入浅出、图文并茂,内容引人入胜,极易引发读者的兴趣,绝无一般教材的枯燥和晦涩。此外,本书的教学手段多样、习题丰富,并且每章后都附有与本章内容相关的社会现实问题供读者思考和讨论,这些都很好地体现了作者强调培养学生分析问题能力的教学理念。
第11版新增了手持移动设备,特别是智能手机的相关内容,主要涉及第3章(操作系统)、第4章(组网)、第6章(编程语言)和第7章(软件工程)中。此外,书中还对软件所有权和责任、训练人工神经网络等许多相关内容做了更新,以反映最新技术面貌。
作者简介
J. Glenn Brookshear 世界知名的计算机科学教育家。他在1975年获得新墨西哥州立大学博士后,创办了Marquette大学的计算机科学学位项目,并在该校任教至今。他的主 要研究方向是计算理论。除了本书之外,他还著有Theory of Computationr: Formal Languages, Automata, and Complexity。
目录信息
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
问题与练习答案(图灵社区网站下载)
· · · · · · (收起)
读后感
大约20年前,上大学时应该读过“计算机科学概论”的课程。那时的课本比较浅显,以实用为主。如今,计算机科学飞速发展,这本书做了很好的概括,即便部分内容有些艰深。 阅读本书,了解了一种编程策略。在编程之前,先根据设想的算法写下伪代码(比较简单,看着像程序但不能运...
本书以简洁的语言,很清晰的逻辑框架介绍了计算机科学的一些基本知识,以及计算机科学的现状以及各个领域。使读者对于什么是计算机科学有了一个大概的了解,也让读者以后学习的目标和方向提供了参考的价值。 本书对于计算机网络,数据库,人工智能,计算机理论都有比较有价值的...
本书以简洁的语言,很清晰的逻辑框架介绍了计算机科学的一些基本知识,以及计算机科学的现状以及各个领域。使读者对于什么是计算机科学有了一个大概的了解,也让读者以后学习的目标和方向提供了参考的价值。 本书对于计算机网络,数据库,人工智能,计算机理论都有比较有价值的...
介绍的内容很有深度,但是很好懂。 以算法为核心。 作者非常担心你不明白,所以不厌其烦的详细讲解。而且每小节后的练习都有答案。(每章的复习题没有答案)故此书很适合自学。 错误还是相当多的,我把我读的过程中发现的错误放在这里:(这是一个wiki,如果你发现了其他错误,...
这本书浅显易懂,运用图表将比较艰深的问题以较为清晰的形式描述出来。整本书逻辑严密,关键术语解释清楚,是计算机学科入门的优秀基础教材。相比较于其他类似教材,连篇累牍的陈述,缺乏图标的阐释,该书的确是用心良苦,煞费苦心,堪称典范。
用户评价
这本书的封面上醒目的“计算机科学概论(第11版)”几个大字,立刻勾起了我对这个领域的无限好奇。我一直对计算机是如何运作的充满兴趣,但苦于没有一个清晰的入门指引。市面上相关的书籍琳琅满目,但总感觉它们要么过于专业,要么不够系统。当我偶然翻开这本书的时候,一种豁然开朗的感觉油然而生。作者以一种非常易于理解的方式,从最基础的概念讲起,逐步深入到计算机科学的核心领域。例如,在讲到数据结构时,它不仅仅是罗列各种数据结构,而是通过生动的比喻和实际的应用场景,让我理解为什么需要这些结构,以及它们各自的优缺点。我特别喜欢它在讲解算法时,那种循序渐进的逻辑,从简单的排序算法到更复杂的图算法,每一步都解释得非常清楚,并且配有详细的代码示例,让我能够跟着一起动手实践。书中的插图和图表也做得相当出色,它们将抽象的概念可视化,大大降低了理解的难度。我曾一度对离散数学感到头疼,但这本书巧妙地将数学概念融入到计算机科学的讨论中,让我发现数学在计算机领域的强大作用,也重新燃起了我对数学的兴趣。总而言之,这本书就像一位耐心的老师,带领我一步步探索计算机科学的奇妙世界,让我受益匪浅。
作为一个长期在IT行业摸爬滚打的从业者,我总是期望能找到一本能够系统性梳理计算机科学基础知识的书籍,尤其是在技术日新月异的今天,巩固基础显得尤为重要。我一直关注着计算机科学领域的发展,但有时会感觉自己在某些基础概念上理解不够扎实,或者对某些领域缺乏系统性的认知。这次拿起《计算机科学概论(第11版)》,我希望能找到一份既能触及核心理论,又能体现最新发展趋势的读物。这本书在内容安排上,我感觉它确实做到了这一点。它没有仅仅停留在理论层面,而是将理论与实践紧密结合,用很多实际的例子来说明抽象的概念。比如,在讲到操作系统原理时,它没有枯燥地罗列概念,而是通过模拟多任务处理、内存管理等场景,让我深刻理解操作系统的精妙设计。我尤其欣赏它在网络通信部分的讲解,从TCP/IP协议栈到HTTP协议,每一步都解释得非常透彻,并且还涉及到一些现实中的网络安全问题。这本书的语言风格非常专业且严谨,但又不失可读性,对于我这样有一定基础的读者来说,是一种很好的知识巩固和拓展。我发现,通过这本书,我能够更清晰地梳理出计算机科学的知识脉络,并且对一些新兴技术有了更深入的理解,这对于我未来的工作非常有帮助。
我一直认为,对于任何一门学科,其“概论”性质的书籍都应该像一座灯塔,为初学者指明方向,为深入研究者提供坚实的地基。在翻阅《计算机科学概论(第11版)》这本书时,我被其严谨的学术态度和清晰的逻辑结构所吸引。作者在内容选取上,显然是经过深思熟虑的,既包含了计算机科学的经典理论,也触及了当前热门的研究领域。例如,在讲解操作系统时,它不仅阐述了进程管理、内存管理等基本概念,还深入讨论了虚拟化技术、分布式系统等前沿话题,这让我在一个全面的框架下理解操作系统的发展演变。我特别欣赏书中在讲解算法和数据结构时,那种对数学证明的严谨推导,以及对算法效率的深入分析,这让我深刻体会到计算机科学作为一门科学的严谨性。同时,这本书也并非只有冰冷的理论,它通过大量的代码示例和图解,将抽象的概念具象化,使得学习过程变得生动有趣。我发现,通过阅读这本书,我不仅能够掌握计算机科学的知识,更能培养一种科学的思维方式,学会如何分析问题、解决问题,并以严谨的态度对待技术。对于任何想要系统学习计算机科学的人来说,这本书无疑是一个极佳的选择,它能够帮助你建立起一个扎实且全面的知识体系。
我是一名对编程充满热情的初学者,一直梦想着能够深入了解计算机的运作原理,并且掌握一门编程语言。在选择入门书籍时,我曾经感到非常困惑,因为市面上有很多书籍要么过于浅显,无法满足我深入学习的愿望,要么就是过于深奥,让我望而却步。当我抱着尝试的心态阅读《计算机科学概论(第11版)》时,我惊喜地发现,这本书为我打开了一个全新的世界。作者的写作风格非常平易近人,他用清晰易懂的语言,将计算机科学中最核心、最基础的概念一一展现出来。我喜欢它从最基础的二进制表示开始,让我理解数据是如何在计算机中存储和处理的。当讲到程序设计语言时,它不仅仅是介绍了语法,更重要的是解释了编程的逻辑思维和解决问题的思路,这对于我这样的新手来说太重要了。书中的大量示例代码,我都可以直接复制到我的开发环境中运行,看到代码真正执行起来,那种成就感是难以言喻的。我尤其喜欢它在讲解数据结构和算法时,那种由浅入深、循序渐进的讲解方式,让我能够一步步地理解这些看似复杂的技术。这本书就像一位循循善诱的良师益友,它不仅传授我知识,更重要的是激发了我对计算机科学持续学习的兴趣和动力,让我对未来的学习之路充满了信心。
作为一名对技术趋势非常敏感的科技爱好者,我一直在寻找一本能够提供全面、权威且与时俱进的计算机科学知识体系的书籍。尤其是在当前人工智能、大数据、云计算等技术飞速发展的时代,对计算机科学的整体认知框架至关重要。《计算机科学概论(第11版)》这本书,确实满足了我这样的需求。它在内容上非常全面,涵盖了从硬件基础到软件工程,从算法理论到人工智能的广泛领域,并且在每个部分都进行了深入的探讨。我印象深刻的是它对计算理论的讲解,比如图灵机和计算复杂性理论,这些理论虽然抽象,但却构成了计算机科学的基石,这本书能够将它们解释得如此清晰,实属不易。此外,它在讲解软件工程和数据库系统时,也融入了许多现代化的实践方法和理念,例如敏捷开发、DevOps等,这些内容对于理解当前软件开发的流程和趋势非常有帮助。书中的一些案例分析,让我能够将书本上的理论知识与现实世界的应用联系起来,更好地理解技术是如何解决实际问题的。总的来说,这本书给我提供了一个非常坚实的计算机科学知识体系,让我能够更好地理解和分析各种新兴技术,并且对未来的技术发展方向有了更清晰的认识。
作为一个文科出身的产品狗,读了这本书表示能和技术用技术语言对话了。
基础知识补完……顺带做了知识框架
还是觉得不带感
真正的Overview,偏重软件但也不忽视硬件,计算机图形学没看。
基础知识补完……顺带做了知识框架