《计算机科学导论(原书第2版)》是大学计算机专业的基础课教材,涉及计算机科学的各个方面。《计算机科学导论(原书第2版)》着重讲解基本概念而不是数学模型和技术细节,通过大量的图表和演示范例讲解计算机科学的基础知识。另外,每章后面的关键术语、小结和练习有助于读者掌握和复习知识要点。《计算机科学导论(原书第2版)》既适合作为高等院校计算机专业学生的基础课教材,又可作为一般的计算机基础入门读物。
目录
- 出版者的话
- 译者序
- 前言
- 第1章 绪论
- 1.1 图灵模型
- 1.1.1 数据处理器
- 1.1.2 可编程数据处理器
- 1.1.3 通用图灵机
- 1.2 冯·诺伊曼模型
- 1.2.1 4个子系统
- 1.2.2 存储的程序概念
- 1.2.3 指令的顺序执行
- 1.3 计算机组成
- 1.3.1 计算机硬件
- 1.3.2 数据
- 1.3.3 计算机软件
- 1.4 历史
- 1.4.1 机械计算机器(1930年以前)
- 1.4.2 电子计算机的诞生(1930~1950年)
- 1.4.3 计算机的诞生(1950年至今)
- 1.5 社会问题和道德问题
- 1.5.1 社会问题
- 1.5.2 道德问题
- 1.6 计算机科学作为一门学科
- 1.7 课程纲要
- 1.8 推荐读物
- 1.9 关键术语
- 1.10 小结
- 1.11 练习
- 第2章 数字系统
- 2.1 引言
- 2.2 位置化数字系统
- 2.2.1 十进制系统(以10为底)
- 2.2.2 二进制系统(以2为底)
- 2.2.3 十六进制系统(以16为底)
- 2.2.4 八进制系统(以8为底)
- 2.2.5 4种位置化系统小结
- 2.2.6 转换
- 2.3 非位置化数字系统
- 2.4 推荐读物
- 2.5 关键术语
- 2.6 小结
- 2.7 练习
- 第3章 数据存储
- 3.1 数据类型
- 3.2 存储数字
- 3.2.1 存储整数
- 3.2.2 存储实数
- 3.3 存储文本
- 3.4 存储音频
- 3.4.1 采样
- 3.4.2 量化
- 3.4.3 编码
- 3.4.4 声音编码标准
- 3.5 存储图像
- 3.5.1 光栅图
- 3.5.2 矢量图
- 3.6 存储视频
- 3.7 推荐读物
- 3.8 关键术语
- 3.9 小结
- 3.10 练习
- 第4章 数据运算
- 4.1 逻辑运算
- 4.1.1 位层次上的逻辑运算
- 4.1.2 模式层次上的逻辑运算
- 4.2 移位运算
- 4.2.1 逻辑移位运算
- 4.2.2 算术移位运算
- 4.3 算术运算
- 4.3.1 整数的算术运算
- 4.3.2 实数的算术运算
- 4.4 推荐读物
- 4.5 关键术语
- 4.6 小结
- 4.7 练习
- 第5章 计算机组成
- 5.1 中央处理单元
- 5.1.1 算术逻辑单元
- 5.1.2 寄存器
- 5.1.3 控制单元
- 5.2 主存储器
- 5.2.1 地址空间
- 5.2.2 存储器的类型
- 5.2.3 存储器的层次结构
- 5.2.4 高速缓冲存储器
- 5.3 输入/输出子系统
- 5.3.1 非存储设备
- 5.3.2 存储设备
- 5.4 子系统的互连
- 5.4.1 CPU和存储器的连接
- 5.4.2 I/O设备的连接
- 5.4.3 输入/输出设备的寻址
- 5.5 程序执行
- 5.5.1 机器周期
- 5.5.2 输入/输出操作
- 5.6 不同的体系结构
- 5.6.1 CISC
- 5.6.2 RISC
- 5.6.3 流水线
- 5.6.4 并行处理
- 5.7 简单计算机
- 5.7.1 指令集
- 5.7.2 处理指令
- 5.7.3 一个例子
- 5.7.4 另一个例子
- 5.8 推荐读物
- 5.9 关键术语
- 5.10 小结
- 5.11 练习
- 第6章 计算机网络
- 6.1 引言
- 6.1.1 网络标准
- 6.1.2 物理结构
- 6.1.3 网络分类
- 6.1.4 互联网
- 6.1.5 因特网
- 6.2 TCP/IP协议族
- 6.3 层
- 6.3.1 应用层
- 6.3.2 传输层
- 6.3.3 网络层
- 6.3.4 数据链路层
- 6.3.5 物理层
- 6.3.6 层的总结
- 6.4 因特网应用
- 6.4.1 电子邮件
- 6.4.2 文件传输协议
- 6.4.3 远程登录-TELNET
- 6.4.4 万维网
- 6.4.5 其他因特网应用
- 6.5 推荐读物
- 6.6 关键术语
- 6.7 小结
- 6.8 练习
- 第7章 操作系统
- 7.1 引言
- 7.2 演化
- 7.2.1 批处理系统
- 7.2.2 分时系统
- 7.2.3 个人系统
- 7.2.4 并行系统
- 7.2.5 分布式系统
- 7.2.6 实时系统
- 7.3 组成部分
- 7.3.1 用户界面
- 7.3.2 内存管理器
- 7.3.3 进程管理器
- 7.3.4 设备管理器
- 7.3.5 文件管理器
- 7.4 主流操作系统
- 7.4.1 UNIX
- 7.4.2 Linux
- 7.4.3 Windows NT/2000/XP
- 7.5 推荐读物
- 7.6 关键术语
- 7.7 小结
- 7.8 练习
- 第8章 算法
- 8.1 概念
- 8.1.1 非正式定义
- 8.1.2 示例
- 8.1.3 定义动作
- 8.1.4 细化
- 8.1.5 泛化
- 8.2 三种结构
- 8.2.1 顺序
- 8.2.2 判断
- 8.2.3 循环
- 8.3 算法的表示
- 8.3.1 UML
- 8.3.2 伪代码
- 8.4 更正式的定义
- 8.4.1 有序集合
- 8.4.2 明确步骤
- 8.4.3 产生结果
- 8.4.4 在有限的时间内终止
- 8.5 基本算法
- 8.5.1 求和
- 8.5.2 乘积
- 8.5.3 最大和最小
- 8.5.4 排序
- 8.5.5 查找
- 8.6 子算法
- 8.7 递归
- 8.7.1 迭代的定义
- 8.7.2 递归的定义
- 8.8 推荐读物
- 8.9 关键术语
- 8.10 小结
- 8.11 练习
- 第9章 程序设计语言
- 9.1 演化
- 9.1.1 机器语言
- 9.1.2 汇编语言
- 9.1.3 高级语言
- 9.2 翻译
- 9.2.1 编译
- 9.2.2 解释
- 9.2.3 翻译过程
- 9.3 编程模式
- 9.3.1 过程式模式
- 9.3.2 面向对象模式
- 9.3.3 函数式模式
- 9.3.4 说明式模式
- 9.4 共同概念
- 9.4.1 标识符
- 9.4.2 数据类型
- 9.4.3 变量
- 9.4.4 字面值
- 9.4.5 常量
- 9.4.6 输入和输出
- 9.4.7 表达式
- 9.4.8 语句
- 9.4.9 子程序
- 9.5 推荐读物
- 9.6 关键术语
- 9.7 小结
- 9.8 练习
- 第10章 软件工程
- 10.1 软件生命周期
- 10.2 分析阶段
- 10.2.1 面向过程分析
- 10.2.2 面向对象分析
- 10.3 设计阶段
- 10.3.1 面向过程设计
- 10.3.2 面向对象设计
- 10.4 实现阶段
- 10.4.1 语言的选择
- 10.4.2 软件质量
- 10.5 测试阶段
- 10.5.1 白盒测试
- 10.5.2 黑盒测试
- 10.6 文档
- 10.6.1 用户文档
- 10.6.2 系统文档
- 10.6.3 技术文档
- 10.7 推荐读物
- 10.8 关键术语
- 10.9 小结
- 10.10 练习
- 第11章 数据结构
- 11.1 数组
- 11.1.1 数组名与元素名
- 11.1.2 多维数组
- 11.1.3 存储配置
- 11.1.4 数组操作
- 11.1.5 数组的应用
- 11.2 记录
- 11.2.1 记录名与域名
- 11.2.2 记录与数组的比较
- 11.2.3 记录数组
- 11.2.4 数组与记录数组
- 11.3 链表
- 11.3.1 数组与链表
- 11.3.2 链表名与节点名
- 11.3.3 链表操作
- 11.3.4 链表的应用
- 11.4 推荐读物
- 11.5 关键术语
- 11.6 小结
- 11.7 练习
- 第12章 抽象数据类型
- 12.1 背景
- 12.1.1 简单抽象数据类型
- 12.1.2 复杂抽象数据类型
- 12.1.3 定义
- 12.1.4 抽象数据类型的模型
- 12.1.5 实现
- 12.2 栈
- 12.2.1 栈的操作
- 12.2.2 栈的抽象数据类型
- 12.2.3 栈的应用
- 12.2.4 栈的实现
- 12.3 队列
- 12.3.1 队列的操作
- 12.3.2 队列的抽象数据类型
- 12.3.3 队列的应用
- 12.3.4 队列的实现
- 12.4 广义线性表
- 12.4.1 广义线性表的操作
- 12.4.2 广义线性表的抽象数据类型
- 12.4.3 广义线性表的应用
- 12.4.4 广义线性表的实现
- 12.5 树
- 12.6 二叉树
- 12.6.1 二叉树的递归定义
- 12.6.2 二叉树的操作
- 12.6.3 二叉树的应用
- 12.6.4 二叉树的实现
- 12.7 二叉搜索树
- 12.7.1 二叉搜索树的抽象数据类型
- 12.7.2 二叉搜索树的实现
- 12.8 图
- 12.9 推荐读物
- 12.10 关键术语
- 12.11 小结
- 12.12 练习
- 第13章 文件结构
- 13.1 存取方法
- 13.1.1 顺序存取
- 13.1.2 随机存取
- 13.2 顺序文件
- 13.3 索引文件
- 13.4 散列文件
- 13.4.1 散列方法
- 13.4.2 冲突
- 13.5 目录
- 13.6 文本文件与二进制文件
- 13.6.1 文本文件
- 13.6.2 二进制文件
- 13.7 推荐读物
- 13.8 关键术语
- 13.9 小结
- 13.10 练习
- 第14章 数据库
- 14.1 引言
- 14.1.1 定义
- 14.1.2 数据库的优点
- 14.2 数据库管理系统
- 14.3 数据库体系结构
- 14.3.1 内层
- 14.3.2 概念层
- 14.3.3 外层
- 14.4 数据库模型
- 14.4.1 层次模型
- 14.4.2 网状模型
- 14.4.3 关系模型
- 14.5 关系数据库模型
- 14.6 关系的操作
- 14.6.1 结构化查询语言
- 14.6.2 插入
- 14.6.3 删除
- 14.6.4 更新
- 14.6.5 选择
- 14.6.6 投影
- 14.6.7 连接
- 14.6.8 并
- 14.6.9 交
- 14.6.10 差
- 14.7 数据库设计
- 14.7.1 实体关系模型
- 14.7.2 从E-R图到关系
- 14.7.3 规范化
- 14.8 其他数据库模型
- 14.8.1 分布式数据库
- 14.8.2 面向对象数据库
- 14.9 推荐读物
- 14.10 关键术语
- 14.11 小结
- 14.12 练习
- 第15章 数据压缩
- 15.1 无损压缩
- 15.1.1 游程长度编码
- 15.1.2 赫夫曼编码
- 15.1.3 Lempel Ziv编码
- 15.2 有损压缩
- 15.2.1 图像压缩:JEPG
- 15.2.2 视频压缩:MPEG
- 15.2.3 音频压缩
- 15.3 推荐读物
- 15.4 关键术语
- 15.5 小结
- 15.6 练习
- 第16章 安全
- 16.1 引言
- 16.1.1 安全目标
- 16.1.2 攻击
- 16.1.3 安全服务
- 16.1.4 技术
- 16.2 对称密钥密码术
- 16.2.1 传统密码
- 16.2.2 现代对称密钥密码
- 16.3 非对称密钥密码术
- 16.4 对称密钥方法和非对称密钥方法的比较
- 16.4.1 秘密记号的数目
- 16.4.2 两个系统的一个共同需要
- 16.5 其他安全服务
- 16.5.1 消息完整性
- 16.5.2 消息验证
- 16.5.3 数字签名
- 16.5.4 实体验证
- 16.6 密钥管理
- 16.6.1 对称密钥分发
- 16.6.2 公钥分发
- 16.7 推荐读物
- 16.8 关键术语
- 16.9 小结
- 16.10 练习
- 第17章 计算理论
- 17.1 简单语言
- 17.1.1 递增语句
- 17.1.2 递减语句
- 17.1.3 循环语句
- 17.1.4 简单语言的威力
- 17.2 图灵机
- 17.2.1 图灵机组成部件
- 17.2.2 对简单语言的模拟
- 17.2.3 邱奇-图灵论题
- 17.3 歌德尔数
- 17.3.1 表示一个程序
- 17.3.2 翻译一个数字
- 17.4 停机问题
- 17.5 可解问题和不可解问题
- 17.5.1 不可解问题
- 17.5.2 可解问题
- 17.5.3 可解问题的复杂度
- 17.6 推荐读物
- 17.7 关键术语
- 17.8 小结
- 17.9 练习
- 第18章 人工智能
- 18.1 引言
- 18.1.1 什么是人工智能
- 18.1.2 人工智能简史
- 18.1.3 图灵测试
- 18.1.4 智能体
- 18.1.5 编程语言
- 18.2 知识表示
- 18.2.1 语义网
- 18.2.2 框架
- 18.2.3 谓词逻辑
- 18.2.4 基于规则的系统
- 18.3 专家系统
- 18.3.1 抽取知识
- 18.3.2 抽取事实
- 18.4 感知
- 18.4.1 图像处理
- 18.4.2 语言理解
- 18.5 搜索
- 18.6 神经网络
- 18.6.1 生物神经元
- 18.6.2 感知器
- 18.6.3 多层网络
- 18.6.4 应用
- 18.7 推荐读物
- 18.8 关键术语
- 18.9 小结
- 18.10 练习
- 附录A Unicode
- 附录B UML
- 附录C 伪代码
- 附录D 结构图
- 附录E 布尔代数和逻辑电路
- 附录F C、C++和Java程序示例
- 附录G 数学复习
- 附录H 错误检测和纠正