本书从实用的角度出发,根据教育部高教司主持评审的《中国计算机科学与技术学科教程2002》组织编写,并参照ACM和IEEE Computing Curricula 2005,对计算机科学与技术学科进行系统化和科学化的阐述。详细介绍了计算机体系结构与组织、程序设计语言、程序设计基础、算法与复杂性、信息管理、软件工程、操作系统、网络计算、图形学和可视化计算、人机交互、离散结构、数值计算科学、智能系统、社会和职业问题等专业知识点。每章均配有习题,以指导读者深入地学习。 本书既可作为高等学校计算机专业课程的教材,也可作为通信、电子信息、自动化等相关专业的计算机教材。
目录
- 第1章 概述 1
- 1.1 计算的起源 1
- 1.2 计算机的产生和发展阶段 2
- 1.2.1 电子计算机产生之前的
- 计算史 2
- 1.2.2 电子计算机的产生 6
- 1.2.3 电子计算机的发展阶段 8
- 1.2.4 中国计算机发展历程 9
- 1.3 计算机的应用领域和发展趋势 13
- 1.3.1 计算机的应用领域 13
- 1.3.2 计算机的发展趋势 14
- 1.4 计算学科 15
- 1.4.1 计算学科的定义 15
- 1.4.2 计算学科的本质 15
- 1.4.3 计算学科的3个过程 16
- 1.4.4 计算学科新的应用领域 17
- 1.5 计算机科学与技术学科的知识体系 19
- 1.5.1 计算机科学与技术学科的
- 形成与发展 19
- 1.5.2 计算机科学与技术学科的
- 定义 19
- 1.5.3 计算机科学与技术学科的
- 根本问题及研究范畴 20
- 1.5.4 计算机科学课程体系的核心
- 内容 20
- 1.6 计算机科学与技术学科的教育 24
- 1.6.1 教育的目的和基本要求 24
- 1.6.2 工科还是理科 25
- 1.6.3 理论与实践相结合 26
- 1.6.4 创新意识培养 26
- 1.6.5 学习方法 26
- 1.7 社会信息化的挑战 29
- 1.8 计算机产业 29
- 本章小结 30
- 习题 30
- 第2章 计算机体系结构与组织 33
- 2.1 数值数据 33
- 2.1.1 数的表示及数制转换 33
- 2.1.2 数的原码、反码和补码 37
- 2.1.3 定点数和浮点数 40
- 2.1.4 十进制数的编码 42
- 2.2 非数值数据 43
- 2.2.1 文字信息的编码 43
- 2.2.2 声音的编码 46
- 2.2.3 图形数据的编码 46
- 2.3 数据的机器编码 47
- 2.3.1 数据的机器级编码 47
- 2.3.2 数据的汇编级编码 47
- 2.4 数字逻辑与数字系统 48
- 2.4.1 基本逻辑关系及逻辑门 48
- 2.4.2 逻辑代数与逻辑函数 51
- 2.5 微型计算机系统的组成 54
- 2.5.1 图灵模型 54
- 2.5.2 冯·诺依曼模型 54
- 2.5.3 微型计算机系统组成 55
- 2.5.4 微型计算机的硬件系统 56
- 2.5.5 微型计算机的软件系统 59
- 2.5.6 计算机的特点 61
- 2.5.7 计算机系统主要技术指标 61
- 2.5.8 计算机的分类 62
- 2.5.9 计算机的基本工作方式 64
- 2.6 存储系统的结构 64
- 2.6.1 存储器与存储系统概述 64
- 2.6.2 存储系统的组织结构 66
- 2.6.3 高速缓冲存储器 67
- 2.6.4 虚拟存储器 68
- 2.7 输入/输出系统 69
- 2.7.1 输入/输出系统概述 69
- 2.7.2 总线结构 70
- 2.7.3 输入/输出接口 71
- 2.7.4 外设数据传送控制方式 73
- 2.8 多核技术 75
- 2.8.1 多核时代到来 75
- 2.8.2 多核技术的优势 75
- 2.8.3 多核的关键技术 76
- 2.9 高性能计算机 79
- 2.10 并行计算机 80
- 2.11 分布式系统 81
- 本章小结 81
- 习题 82
- 第3章 程序设计语言 84
- 3.1 程序设计语言概述 84
- 3.1.1 程序的概念 84
- 3.1.2 计算机程序设计语言 84
- 3.1.3 高级语言程序设计的基本
- 内容 87
- 3.1.4 高级语言的数据表示手段 90
- 3.2 声明和类型 91
- 3.3 类型系统 91
- 3.4 编译原理 92
- 3.4.1 编译程序概述 92
- 3.4.2 词法分析 94
- 3.4.3 语法分析 94
- 3.4.4 语义处理 95
- 3.4.5 中间代码生成 96
- 3.4.6 中间代码优化 96
- 3.4.7 目标代码生成 97
- 3.4.8 编译技术的新发展 97
- 3.5 程序设计语言的设计 98
- 本章小结 99
- 习题 99
- 第4章 程序设计基础 101
- 4.1 程序设计基础 101
- 4.2 程序设计方法 101
- 4.2.1 结构化程序设计方法 102
- 4.2.2 面向对象的程序设计方法 104
- 4.2.3 函数程序设计 107
- 4.2.4 程序设计风格 108
- 4.2.5 程序设计举例 109
- 4.3 基本数据结构 110
- 4.3.1 基本概念 110
- 4.3.2 几种典型的数据结构 111
- 4.3.3 查找 117
- 4.3.4 排序 118
- 4.4 事件驱动程序设计 119
- 本章小结 119
- 习题 120
- 第5章 算法与复杂性 122
- 5.1 算法分析基础 122
- 5.1.1 算法的概念 122
- 5.1.2 算法的特性 122
- 5.2 常用算法介绍 123
- 5.3 算法描述工具 125
- 5.4 算法的评价 126
- 5.5 算法设计策略 127
- 5.6 分布式算法 128
- 5.7 可计算性理论基础 128
- 5.8 NP问题 129
- 5.9 自动机理论 129
- 5.10 加密算法 130
- 5.11 几何算法 131
- 5.12 并行算法 131
- 本章小结 132
- 习题 132
- 第6章 信息管理 134
- 6.1 模型与信息系统 134
- 6.1.1 信息 134
- 6.1.2 信息模型 134
- 6.1.3 信息系统 135
- 6.2 数据库系统概述 135
- 6.2.1 数据库的基本概念 135
- 6.2.2 数据管理技术的发展 136
- 6.2.3 数据模型 138
- 6.3 关系数据库 141
- 6.3.1 关系数据库的基本概念 141
- 6.3.2 关系模型与关系模式 142
- 6.4 数据库查询语言SQL 144
- 6.4.1 SQL的特点 145
- 6.4.2 SQL的功能 145
- 6.4.3 SQL基本概念 145
- 6.4.4 SQL的简单实例 146
- 6.5 关系数据库设计 149
- 6.5.1 关系数据库的设计原则 149
- 6.5.2 关系数据库的设计步骤 149
- 6.6 数据库管理 150
- 6.6.1 DBA的职责与管理工具 150
- 6.6.2 数据库的安全性控制 150
- 6.6.3 事务处理技术 151
- 6.6.4 数据库的完整性控制 152
- 6.7 常用数据库管理系统 152
- 6.8 数据库新发展 154
- 6.8.1 分布式数据库 154
- 6.8.2 空间数据库 154
- 6.8.3 多媒体数据库 154
- 6.8.4 数据仓库 155
- 6.8.5 信息存储与检索 155
- 6.8.6 超文本和超媒体 155
- 6.8.7 多媒体信息与多媒体系统 156
- 6.8.8 数字图书馆 157
- 本章小结 158
- 习题 158
- 第7章 软件工程 161
- 7.1 软件工程概述 161
- 7.1.1 软件危机 161
- 7.1.2 软件工程的基本概念 162
- 7.1.3 软件工程过程 164
- 7.1.4 软件生命周期 165
- 7.2 软件开发模型 166
- 7.2.1 瀑布模型 166
- 7.2.2 快速原型法模型 167
- 7.2.3 螺旋模型 169
- 7.2.4 喷泉模型 170
- 7.2.5 转换模型 171
- 7.2.6 智能模型 171
- 7.3 软件开发方法 172
- 7.3.1 面向数据结构方法 172
- 7.3.2 统一建模语言 172
- 7.3.3 软件复用和构件技术 173
- 7.4 软件质量评价和保证 175
- 7.4.1 软件质量的定义 175
- 7.4.2 软件质量的度量和评价 175
- 7.4.3 软件质量保证 177
- 7.5 质量度量模型 178
- 7.5.1 McCall 质量度量模型 178
- 7.5.2 ISO的软件质量评价模型 179
- 7.6 软件复杂性 180
- 7.6.1 软件复杂性的基本概念 180
- 7.6.2 软件复杂性的度量方法 181
- 7.7 软件项目管理 182
- 7.7.1 软件项目计划 182
- 7.7.2 软件项目计划内容 182
- 7.7.3 软件工程规范 182
- 7.7.4 软件开发成本估算 183
- 7.7.5 风险分析 184
- 7.7.6 软件项目进度安排 184
- 7.7.7 软件质量保证 185
- 7.8 软件可靠性 186
- 7.8.1 软件可靠性定义 186
- 7.8.2 软件可靠性指标 186
- 7.8.3 软件可靠性模型 186
- 7.9 软件评审 187
- 7.9.1 设计质量的评审内容 187
- 7.9.2 程序质量的评审内容 188
- 7.10 容错软件技术 189
- 7.10.1 容错软件定义 189
- 7.10.2 容错的一般方法 189
- 7.10.3 容错软件的设计过程 190
- 7.11 软件工程环境 191
- 7.11.1 软件开发环境概述 191
- 7.11.2 软件开发环境的分类 191
- 7.11.3 软件工具的基本概念 193
- 7.11.4 计算机辅助软件工程 193
- 本章小结 195
- 习题 196
- 第8章 操作系统 199
- 8.1 操作系统概念 199
- 8.1.1 操作系统的一些基本概念 199
- 8.1.2 操作系统的基本组成 203
- 8.1.3 操作系统在计算机系统中的
- 地位 210
- 8.1.4 操作系统的启动 211
- 8.2 操作系统的发展 211
- 8.2.1 手工操作阶段 211
- 8.2.2 批处理系统阶段 212
- 8.2.3 多道程序系统阶段 212
- 8.2.4 现代操作系统阶段 213
- 8.3 操作系统原理 214
- 8.4 操作系统的分类 216
- 8.5 操作系统的功能 217
- 8.5.1 资源管理功能 217
- 8.5.2 扩展的虚拟机功能 219
- 8.5.3 网络操作系统的功能 219
- 8.6 操作系统的体系结构 220
- 8.7 并发性 221
- 8.8 调度与分派 221
- 8.9 安全与保护 222
- 8.10 文件系统 224
- 8.11 容错 224
- 8.12 系统性能评价 225
- 8.13 脚本 226
- 8.14 主流操作系统简介 226
- 8.14.1 Windows操作系统 226
- 8.14.2 UNIX操作系统 228
- 8.14.3 Linux操作系统 229
- 8.15 操作系统的新发展 231
- 本章小结 232
- 习题 232
- 第9章 网络计算 234
- 9.1 通信与组网 234
- 9.1.1 数据通信的基本概念 234
- 9.1.2 数据通信方式 235
- 9.1.3 数据传输方式 237
- 9.2 计算机网络 238
- 9.2.1 计算机网络的起源 238
- 9.2.2 计算机网络的定义 240
- 9.2.3 计算机网络的主要部件 240
- 9.2.4 计算机网络的传输媒体 241
- 9.2.5 计算机网络的分类 243
- 9.2.6 计算机网络拓扑结构 245
- 9.2.7 计算机网络的体系结构 248
- 9.2.8 计算机网络间的互联 250
- 9.3 Internet和TCP/IP协议 251
- 9.3.1 Internet的起源 251
- 9.3.2 TCP/IP协议 251
- 9.3.3 IP地址 252
- 9.3.4 Internet提供的主要服务 254
- 9.3.5 Intranet 256
- 9.4 网络管理 256
- 9.4.1 网络管理基础 257
- 9.4.2 网络管理功能 258
- 9.4.3 Internet的管理信息库 260
- 9.4.4 网络管理协议 261
- 9.4.5 网络管理发展方向 262
- 9.5 移动通信与无线上网 263
- 9.6 网络安全机制 265
- 9.6.1 网络安全的基本问题 265
- 9.6.2 网络安全的内容 266
- 9.6.3 数据加密技术 267
- 9.6.4 防病毒技术 267
- 9.6.5 防火墙技术 269
- 9.7 网格计算 270
- 本章小结 271
- 习题 271
- 第10章 图形学和可视化计算 274
- 10.1 图形学基本概念 274
- 10.1.1 计算机图形信息的处理 274
- 10.1.2 计算机图形学的起源 275
- 10.1.3 计算机图形学主要研究的
- 内容 275
- 10.1.4 计算机图形学的应用 275
- 10.1.5 计算机图形的标准化 276
- 10.1.6 常见的图形图像格式 277
- 10.2 图形系统 279
- 10.3 计算机视觉和可视化 280
- 10.3.1 人的视觉 280
- 10.3.2 计算机视觉 280
- 10.3.3 可视化 281
- 10.4 图形用户界面 281
- 10.5 图像通信 281
- 10.6 几何建模 282
- 10.7 计算机动画 282
- 10.8 虚拟现实 283
- 10.8.1 虚拟现实技术基本概念 283
- 10.8.2 虚拟现实技术的发展
- 和特征 283
- 10.8.3 虚拟现实系统的组成 285
- 10.8.4 虚拟现实系统分类 285
- 10.8.5 虚拟现实建模语言 286
- 10.8.6 虚拟现实技术的应用 287
- 本章小结 289
- 习题 289
- 第11章 人机交互 291
- 11.1 人机交互 291
- 11.1.1 人机交互技术基础 291
- 11.1.2 人机交互模型 292
- 11.1.3 人机系统交互界面的
- 构架 293
- 11.1.4 人机界面的设计 294
- 11.1.5 数据交互 297
- 11.1.6 语音交互 298
- 11.1.7 图像交互 298
- 11.1.8 行为交互 299
- 11.2 多媒体技术 299
- 11.2.1 多媒体技术概述 299
- 11.2.2 多媒体技术 300
- 11.2.3 多媒体技术的应用 301
- 本章小结 302
- 习题 303
- 第12章 离散结构 304
- 12.1 离散结构的研究对象及主要
- 内容 304
- 12.1.1 离散结构的研究对象 304
- 12.1.2 离散结构研究的主要
- 内容 304
- 12.2 数理逻辑 305
- 12.2.1 命题逻辑 305
- 12.2.2 谓词逻辑 309
- 12.3 集合论 311
- 12.3.1 集合的基本概念与运算 311
- 12.3.2 关系与函数 313
- 12.4 代数结构 317
- 12.4.1 代数结构概述 317
- 12.4.2 格与布尔代数 319
- 12.5 图论 320
- 12.5.1 图的基本概念 320
- 12.5.2 路径、回路及连通性 322
- 12.5.3 图的矩阵表示 323
- 12.6 离散概率 324
- 本章小结 325
- 习题 325
- 第13章 数值计算科学 329
- 13.1 高性能计算 329
- 13.2 数值分析 329
- 13.3 运筹学 330
- 13.4 数学建模与计算机模拟 331
- 本章小结 332
- 习题 333
- 第14章 智能系统 334
- 14.1 人工智能系统 334
- 14.1.1 人工智能的定义 334
- 14.1.2 人工智能的主要学派 334
- 14.1.3 人工智能的研究与应用
- 领域 335
- 14.2 知识表示及推理 338
- 14.2.1 知识与知识表示 338
- 14.2.2 经典推理技术 338
- 14.2.3 高级知识推理技术 340
- 14.3 搜索技术 341
- 14.3.1 一般搜索技术 342
- 14.3.2 高级搜索技术 343
- 14.4 自然语言处理 344
- 14.4.1 语言及其理解 344
- 14.4.2 句法和语义的分析 345
- 14.4.3 机器翻译 346
- 14.5 智能计算 346
- 14.5.1 智能计算概述 346
- 14.5.2 遗传算法 347
- 14.5.3 集群智能 347
- 14.5.4 人工神经网络 348
- 14.6 机器学习 350
- 14.6.1 机器学习的定义 350
- 14.6.2 机器学习的发展过程 350
- 14.6.3 机器学习的主要研究方向 351
- 14.6.4 机器学习策略 351
- 14.6.5 机器学习方法 352
- 本章小结 353
- 习题 354
- 第15章 社会和职业问题 355
- 15.1 计算的社会背景 355
- 15.2 计算机与道德 356
- 15.2.1 道德的哲学含义 356
- 15.2.2 道德选择 356
- 15.2.3 道德评价 356
- 15.2.4 计算机专业人员的职业
- 道德准则 357
- 15.2.5 计算机用户的道德 357
- 15.3 基于计算机系统的风险与责任 358
- 15.4 知识产权 359
- 15.5 隐私与公民自由 361
- 15.6 计算机犯罪 362
- 15.7 团队合作 363
- 15.8 哲学框架 365
- 本章小结 365
- 习题 366
- 参考文献 368