当前位置:首页 > 计算机网络 > 研究生/本科/专科教材 > 计算机科学概论
出版社:机械工业出版社
出版日期:2009-2
ISBN:9787111170167
作者:(美)Nell Dale,John Lewis
页数:375页
章节摘录
插图:那些编写辅助工具的程序设计员,简化了他人的程序设计,是最初的系统程序员。因此,即使在第一代计算机软件中,也存在编写工具的程序设计员和使用工具的程序员这样的分类。汇编语言是程序设计员和机器硬件之间的缓冲器。请参阅图1-7。即使是现在,如果高效代码是必需的,那么还是会用汇编语言编写程序。第7章详细探讨了一个机器代码和它对应的汇编语言的例子。第二代软件(1959~1965)当硬件变得更强大时,就需要更强大的工具能有效地使用它们。当然,汇编语言是向正确的方向前进了一步,但是程序设计员还是必须记住单独的机器指令。第二代软件一定要由更强大的语言开发。使用高级语言,程序设计员就能够用类似于英语的语句编写指令。第二代软件时期开发的两种语言,目前仍然在使用,它们是FORTRAN(为数字应用程序设计的语言)和COBOL(为商业应用程序设计的语言)。FORTRAN和COBOL的开发过程完全不同。FORTRAN最初是一种简单语言,经过几年附加特性后才形成一种高级语言。而COBOL则是先设计好,然后再开发的,形成之后就很少改动。这一时期设计的另一种仍然在用的语言是Lisp。Lisp与FORTRAN和COBOL有极大的不同,而且没有被广泛接受,主要用于人工智能的应用程序和研究。Lisp的专用语是当今人工智能可用的语言之一,Scheme就是一种Lisp专用语,有些学校用它作为启蒙性的程序设计语言。高级语言的出现加速了在多台计算机上运行同一个程序。每种高级语言都有配套的翻译程序,这种程序可以把高级语言编写的语句翻译成等价的机器码指令。最早时,高级语言的语句通常被翻译成汇编语言,然后这些汇编语句再被翻译成机器码。只要一台机器具有编译器这种翻译程序,就能够运行用FORTRAN或COBOL编写的程序。
前言
《计算机科学概论》是每一个学习计算机科学的人都应该读的第一本书。当我翻译完整本书后,一直在想,为什么在我的大学课程中,没有这样一门课,能够系统地讲述一遍计算机科学发展的历史,让我在学习的一开始就对计算机科学有一个整体的认识。这本书除了系统地介绍整个计算机系统外,还讲述了计算机系统的发展史。在阅读每个章节时,你都会明白这个章节要介绍的硬件、软件、语言等的来龙去脉,这样就能为以后的深入研究打下坚实的基础。本书的主旨就是给初学者提供一本全面了解计算机科学的教材。本书的作者具有丰富的实际教学经验,真正了解初学者需要什么,并且集思广益,使得本书的内容更加完善。在这本书中,作者用了一个形象的比喻,把计算机系统比作洋葱,它们的相似之处就在于内部结构都是一层层的。第1章是基础篇,介绍了硬件和软件的历史,以及计算机系统的洋葱式结构。以后的各章就根据这种结构,分别介绍了计算机系统的信息层、硬件层、程序设计层、操作系统层、应用程序层和通信层,最后则总结性地讨论了计算机硬件和软件固有的局限性,以及计算机能够解决和不能解决的问题。除了详细地介绍计算机系统的方方面面外,本书还有三个亮点。第一,在每一章中都有一篇名人传记,记述了对计算机科学的发展做出过杰出贡献的人的生平。你可以想到的计算机界的传奇人物,几乎都可以在本书中找到他或她的踪影。第二,在每一章的结尾,附有一篇涉及法律和道德的短文,探讨了计算机科学发展史上出现过的一些有争议的问题。通过这些短文,你一定会对计算机科学有更进一步的了解。第三,每章后面都附带有大量的练习,可以帮助你即时重温这一章所讲述的内容,有助于你更好地掌握这些内容。本书很适合作为计算机科学专业学生的入门教材。不过,即使是非计算机专业的学生和非专业人员,想要了解计算机科学的概况,本书也不失为一个很好的选择。本书由张欣组织翻译和审校,参与翻译的还有胡伟、何健辉、黄璜、白佳、卞雨桂、陈洁、成洁、杜鲲、李才应、刘天成、刘吟、明卫军、潘秀燕、钱金蕾、王华红、魏胜、阎哲、王林、陈思锦、金川。
媒体关注与评论
书评本书采用大量最新素材,全面介绍计算机科学领域的基础知识。本书由当今该领域备受赞誉且经验丰富的教育家Nell Dale和John Lewis共同编写。就整体而言,全书内容翔实、覆盖面广,旨在向读者展示计算机科学的全貌;从细节上看,本书层次清晰、描述生动;从信息讲起,分别介绍了关于硬件、编程、操作系统、应用以及通信方面的内容,涉及计算机科学的各个层面。 本书内容严谨、深入浅出,是计算机科学专业学生理想的入门教材。 本书特点: ●采用一般语言对编程概念进行了描述,关于Java、C++语言对该问题的描述在本书的配套网站 中提供。 ●增加了名人传记、历史事件以及技术发展的前沿知识;并在每章中就科技发展对人类社会伦理道德的影响进行了探讨。 ●包含大量练习和思考题,方便教学。 ●本书的配套网站集学术性及趣味性于一体,提供了大量教学资源:Flash幻灯片、在线术语表、互动学习、填字游戏、HTML帮助信息等,以更灵活的方式多方位地加深读者对本书知识的理解。
内容概要
Nell Dall,计算机科学领域广爱推崇的教育家。在得克萨斯大学奥斯汀分校执教的25年中,她编写了20多本计算机科学方面的本科生教材。她于得克萨斯大学奥斯汀分校获得了硕士学位和计算机科学博士学位。由于在计算机科学领域做出了卓越工贡献,1996年,她获得了ACM SIGCSE计算机
书籍目录
译者序
前言
第一部分 基 础 篇
第1章 全景图 1
1.1 计算系统 1
1.1.1 计算系统的分层 2
1.1.2 抽象 3
1.2 计算的历史 5
1.2.1 计算硬件的简史 5
1.2.2 计算软件的简史 11
1.2.3 预言 15
1.3 计算工具和计算学科 15
小结 16
道德问题:数字化分裂 17
练习 17
思考题 18
第二部分 信 息 层
第2章 二进制数值和记数系统 21
2.1 数字和计算 21
2.2 位置记数法 22
2.2.1 二进制、八进制和十六进制 25
2.2.2 其他记数系统中的运算 26
2.2.3 以2的幂为基数的记数系统 26
2.2.4 把十进制数转换成其他数制的数 28
2.2.5 二进制数值和计算机 29
小结 30
道德问题:计算机和国家安全 30
练习 31
思考题 32
第3章 数据表示法 34
3.1 数据和计算机 34
3.1.1 模拟数据和数字数据 35
3.1.2 二进制表示法 36
3.2 数字数据的表示法 38
3.2.1 负数表示法 38
3.2.2 实数表示法 40
3.3 文本表示法 42
3.3.1 ASCII字符集 43
3.3.2 Unicode字符集 44
3.3.3 文本压缩 44
3.4 音频信息表示法 47
3.4.1 音频格式 49
3.4.2 MP3音频格式 49
3.5 图像和图形的表示法 49
3.5.1 颜色表示法 49
3.5.2 数字化图像和图形 50
3.5.3 图形的矢量表示法 52
3.6 视频表示法 53
小结 53
道德问题:MGM Studios公司和Grokster有限公司 54
练习 55
思考题 57
第三部分 硬 件 层
第4章 门和电路 59
4.1 计算机和电学 59
4.2 门 61
4.2.1 非门 61
4.2.2 与门 62
4.2.3 或门 62
4.2.4 异或门 63
4.2.5 与非门和或非门 63
4.2.6 门处理回顾 64
4.2.7 具有更多输入的门 64
4.3 门的构造 65
4.4 电路 66
4.4.1 组合电路 67
4.4.2 加法器 69
4.4.3 多路复用器 71
4.5 存储器电路 71
4.6 集成电路 72
4.7 CPU芯片 73
小结 73
道德问题:电子邮件隐私权 73
练习 74
思考题 76
第5章 计算部件 77
5.1 独立的计算机部件 77
5.2 存储程序的概念 79
5.2.1 冯·诺伊曼体系结构 80
5.2.2 读取-执行周期 84
5.2.3 RAM和ROM 85
5.2.4 二级存储设备 86
5.2.5 触摸屏 89
5.3 非冯·诺伊曼体系结构 90
小结 91
道德问题:生物信息学研究和deCODEGenetics公司的案例 92
练习 93
思考题 94
第四部分 程序设计层
第6章 问题求解和算法设计 95
6.1 问题求解 95
6.1.1 如何解决问题 96
6.1.2 应用Polya的问题求解策略 99
6.2 算法 99
6.2.1 计算机问题求解 99
6.2.2 执行算法 101
6.2.3 开发算法 102
6.3 伪代码 102
6.3.1 执行一个伪代码算法 103
6.3.2 伪代码的功能 104
6.3.3 伪代码示例 106
6.4 自顶向下设计方法 108
6.4.1 一个通用的实例 109
6.4.2 一个计算机实例 111
6.4.3 方法总结 113
6.4.4 测试算法 114
6.5 面向对象方法 114
6.5.1 面向对象 114
6.5.2 设计方法 115
6.5.3 一个通用的实例 117
6.5.4 一个计算机实例 118
6.6 几个重要思想 120
6.6.1 信息隐蔽 120
6.6.2 抽象 121
6.6.3 事物命名 122
6.6.4 程序设计语言 122
6.6.5 测试 123
小结 123
道德问题:计算机专业人员许可 124
练习 124
思考题 126
第7章 低级程序设计语言 127
7.1 计算机操作 127
7.2 抽象的分层 128
7.3 机器语言 128
7.4 一个程序实例 133
7.4.1 问题和算法 133
7.4.2 程序 134
7.5 汇编语言 137
7.5.1 Pep/7汇编语言 138
7.5.2 伪代码操作 138
7.5.3 “Hello”程序的汇编语言版本 139
7.5.4 一个新程序 140
7.5.5 具有分支的程序 142
7.5.6 具有循环的程序 144
7.6 其他重要思想 145
7.6.1 抽象 145
7.6.2 测试 146
7.6.3 测试计划实现 146
小结 147
道德问题:软件盗版和版权 148
练习 148
思考题 150
第8章 高级程序设计语言 151
8.1 翻译过程 151
8.1.1 编译器 151
8.1.2 解释器 152
8.2 程序设计语言的范型 154
8.3 命令式语言的功能性 155
8.3.1 布尔表达式 155
8.3.2 强类型化 156
8.3.3 输入/输出结构 159
8.3.4 控制结构 160
8.3.5 复合数据类型 172
8.4 面向对象语言的功能性 175
8.4.1 封装 175
8.4.2 继承 176
8.4.3 多态性 176
小结 177
道德问题:开源软件的发展 178
练习 179
思考题 180
第9章 抽象数据类型和算法 181
9.1 抽象数据类型 181
9.2 实现 182
9.2.1 基于数组的实现 182
9.2.2 链式实现 183
9.3 列表 185
9.3.1 列表的基本操作 185
9.3.2 其他列表操作 188
9.4 排序 188
9.4.1 选择排序 189
9.4.2 冒泡排序 190
9.4.3 快速排序 191
9.5 二分检索法 195
9.6 栈和队列 196
9.6.1 栈 197
9.6.2 队列 198
9.6.3 实现 198
9.7 树 199
9.7.1 二叉树 199
9.7.2 二叉检索树 200
9.7.3 其他操作 203
9.7.4 图 204
9.8 程序设计库 204
小结 205
道德问题:使用计算机的恶作剧和欺诈
行为 205
练习 206
思考题 208
第五部分 操作系统层
第10章 操作系统 209
10.1 操作系统的角色 209
10.1.1 内存、进程和CPU管理 211
10.1.2 批处理 211
10.1.3 分时操作 212
10.1.4 其他OS要素 213
10.2 内存管理 213
10.2.1 单块内存管理 214
10.2.2 分区内存管理 215
10.2.3 页式内存管理 216
10.3 进程管理 218
10.3.1 进程状态 218
10.3.2 进程控制块 219
10.4 CPU调度 219
10.4.1 先到先服务 220
10.4.2 最短作业优先 220
10.4.3 循环调度法 221
小结 222
道德问题:数字版权管理和关于Sony公司的根目录案件的争论 223
练习 223
思考题 226
第11章 文件系统和目录 227
11.1 文件系统 227
11.1.1 文本文件和二进制文件 228
11.1.2 文件类型 228
11.1.3 文件操作 229
11.1.4 文件访问 230
11.1.5 文件保护 231
11.2 目录 232
11.2.1 目录树 232
11.2.2 路径名 234
11.3 磁盘调度 236
11.3.1 先到先服务磁盘调度法 237
11.3.2 最短寻道时间优先磁盘调度法 237
11.3.3 SCAN磁盘调度法 238
小结 238
道德问题:垃圾邮件 239
练习 240
思考题 241
第六部分 应用程序层
第12章 信息系统 243
12.1 信息管理 243
12.2 电子制表软件 244
12.2.1 电子数据表公式 246
12.2.2 循环引用 249
12.2.3 电子数据表分析 249
12.3 数据库管理系统 250
12.3.1 关系模型 251
12.3.2 关系 253
12.3.3 结构化查询语言 254
12.3.4 数据库设计 255
12.4 信息安全 256
12.4.1 机密性、完整性和可用性 256
12.4.2 密码学 257
小结 259
道德问题:加密 260
练习 261
思考题 262
第13章 人工智能 263
13.1 思维机 263
13.1.1 图灵测试 264
13.1.2 AI问题的各个方面 265
13.2 知识表示 265
13.2.1 语义网 266
13.2.2 检索树 268
13.3 专家系统 270
13.4 神经网络 272
13.4.1 生物神经网络 272
13.4.2 人工神经网络 273
13.5 自然语言处理 274
13.5.1 语音合成 275
13.5.2 语音识别 276
13.5.3 自然语言理解 276
13.6 机器人学 277
13.6.1 感知-规划-执行范型 277
13.6.2 包孕体系结构 280
13.6.3 物理部件 281
小结 281
道德问题:HIPAA(健康保险携带和责任法案) 282
练习 283
思考题 284
第14章 模拟、图形学和其他应用
程序 285
14.1 什么是模拟 285
14.1.1 复杂系统 286
14.1.2 模型 286
14.1.3 构造模型 286
14.1.4 排队系统 287
14.1.5 气象模型 290
14.1.6 其他模型 293
14.1.7 必要的计算能力 293
14.2 计算机图形学 294
14.2.1 光的工作原理 295
14.2.2 物体形状 296
14.2.3 光模拟 296
14.2.4 复杂对象的建模 297
14.2.5 让物体动起来 302
14.3 嵌入式系统 303
14.4 电子商务 303
14.5 计算机安全 304
14.5.1 恶意代码 305
14.5.2 安全攻击 305
小结 307
道德问题:入侵大学的计算机系统,查询
录取程序中某人的录取状态 307
练习 308
思考题 309
第七部分 通 信 层
第15章 网络 311
15.1 连网 311
15.1.1 网络的类型 312
15.1.2 Internet连接 314
15.1.3 包交换 316
15.2 开放式系统和协议 317
15.2.1 开放式系统 317
15.2.2 网络协议 318
15.2.3 TCP/IP 318
15.2.4 高层协议 319
15.2.5 MIME类型 320
15.2.6 防火墙 320
15.3 网络地址 321
小结 323
道德问题:无所不在的计算 324
练习 325
思考题 326
第16章 万维网 327
16.1 Web简介 327
16.1.1 搜索引擎 329
16.1.2 即时消息 329
16.1.3 博客 329
16.1.4 cookie 330
16.2 HTML 330
16.2.1 基本的HTML格式 333
16.2.2 图像和链接 333
16.3 交互式Web页 335
16.3.1 Java小程序 335
16.3.2 Java服务器页 336
16.4 XML 337
小结 339
道德问题:写博客 340
练习 341
思考题 342
第八部分 总 结
第17章 计算的限制 345
17.1 硬件 345
17.1.1 算术运算的限制 345
17.1.2 部件的限制 350
17.1.3 通信的限制 350
17.2 软件 351
17.2.1 软件的复杂度 352
17.2.2 当前提高软件质量的方法 352
17.2.3 臭名昭著的软件错误 355
17.3 问题 357
17.3.1 算法比较 357
17.3.2 图灵机 362
17.3.3 停机问题 364
17.3.4 算法分类 365
小结 367
道德问题:深度链接 367
练习 368
思考题 369
参考文献 370
编辑推荐
《计算机科学概论》采用大量最新素材,全面介绍计算机科学领域的基础知识。《计算机科学概论》由当今该领域备受赞誉且经验丰富的教育家Nell Dale和John Lewis共同编写。就整体而言,全书内容翔实、覆盖面广,旨在向读者展示计算机科学的全貌;从细节上看,《计算机科学概论》层次清晰、描述生动;从信息讲起,分别介绍了关于硬件、编程、操作系统、应用以及通信方面的内容,涉及计算机科学的各个层面。 《计算机科学概论》内容严谨、深入浅出,是计算机科学专业学生理想的入门教材。《计算机科学概论》特点:采用一般语言对编程概念进行了描述,关于Java、C++语言对该问题的描述在《计算机科学概论》的配套网站 http://csilluminated.jbpub.com) 中提供。增加了名人传记、历史事件以及技术发展的前沿知识;并在每章中就科技发展对人类社会伦理道德的影响进行了探讨。包含大量练习和思考题,方便教学。 《计算机科学概论》的配套网站集学术性及趣味性于一体,提供了大量教学资源:Flash幻灯片、在线术语表、互动学习、填字游戏、HTML帮助信息等,以更灵活的方式多方位地加深读者对《计算机科学概论》知识的理解。
作者简介
《计算机科学概论》由两位知名的计算机科学教育家编写,全面而细致地介绍了计算机科学的各个方面。书中,计算系统的每个分层都以剖析,从住处层开始,历经硬件层、程序设计层、操作系统层、应用程序层的通信层,最后讨论了计算的限制。此外,正文中穿插了大量的人物传记、历史注释、道德问题和最新的技术发展信息,有助于你进一步了解计算机科学。每章后面都附带有大量的练习,可以帮助你即时重温并掌握这一章所述的内容。
《计算机科学概论》是计算和计算机科学引论课程的理想教材,对于想要了解计算机科学概况的非专业人员,《计算机科学概论》也是一个很好的选择。
图书封面