根据计算机科学与技术专业、网络工程专业、软件工程专业以及信息管理与信息系统专业的规范和应用型本科院校的教学需求特点,本着“通俗易懂,注重理论、兼顾实践、科学导学”的原则,本书从计算机硬件、软件、网络和应用等几个方面对计算机科学与技术专业课程和相关知识点进行了介绍。主要内容包括计算机专业知识体系、计算机发展史、计算机体系结构、计算机网络、操作系统、软件与程序设计、数据库、软件工程、人工智能、计算机安全、计算机新技术和应用。
甘勇,男,1965年5月出生。中共党员。研究生学历,郑州轻工业学院计算机与通信工程系学院教授,院长。担任中国计算机学会微机专委常委、河南省计算机学会理事、河南省高校计算机教育研究会副理事长、郑州市青联委员、河南省软件行业协会常务理事。荣获过河南省优秀专家、河南省管优秀青年科技专家、河南省跨世纪学术和技术带头人培养对象、河南省优秀教师等荣誉称号。
第1章 概述 1
1.1 计算机发展前史 1
1.2 计算机的发展与应用 6
1.2.1 电子计算机的发展 6
1.2.2 计算机的应用领域 8
1.3 计算机模型 10
1.3.1 图灵模型 10
1.3.2 冯?诺依曼模型 11
1.4 计算机应用系统的计算模式 12
1.4.1 单主机计算模式 13
1.4.2 分布式客户/服务器计算模式 13
1.4.3 浏览器/服务器计算模式 14
1.4.4 新的计算模式 14
1.5 计算学科 17
1.5.1 计算学科的历史背景 17
1.5.2 计算学科领域的分化及主要内容 18
1.6 小结 20
第2章 计算基础 23
2.1 数制 23
2.1.1 数制的定义 23
2.1.2 数制的规律 24
2.1.3 常用的数制 24
2.1.4 二进制数 26
2.1.5 数制转换 29
2.2 数据存储的组织方式 32
2.2.1 数据存储单位 33
2.2.2 存储设备结构 33
2.2.3 编址与地址 34
2.3 数值在计算机中的表示 34
2.3.1 数的定点和浮点表示 35
2.3.2 数的编码表示 35
2.3.3 计算机中数的浮点表示 37
2.4 信息编码 39
2.4.1 二―十进制编码(BCD码) 39
2.4.2 字符编码 39
2.4.3 汉字编码 41
2.4.4 多媒体信息编码 43
2.5 小结 45
第3章 计算机组成 48
3.1 计算机的系统组成 48
3.1.1 计算机的硬件系统 49
3.1.2 计算机的软件系统 55
3.1.3 计算机软硬件系统之间的关系 57
3.2 计算机的工作原理 57
3.2.1 计算机指令 57
3.2.2 计算机的工作原理 58
3.3 计算机的性能评价 59
3.4 小结 60
第4章 计算机网络 61
4.1 计算机网络概述 61
4.1.1 计算机网络的概念 61
4.1.2 计算机网络的组成 62
4.1.3 计算机网络的发展 62
4.1.4 计算机网络的分类 63
4.1.5 计算机网络体系结构 64
4.1.6 网络服务应用模式 66
4.2 网络中间系统 67
4.2.1 网络传输介质 67
4.2.2 网络接口卡 70
4.2.3 集线器 70
4.2.4 交换机 71
4.2.5 路由器 71
4.3 计算机局域网 72
4.3.1 局域网概述 72
4.3.2 载波侦听多路访问/冲突检测协议 73
4.3.3 以太网 74
4.4 Internet的基础知识 75
4.4.1 Internet的概述 75
4.4.2 Internet的接入 77
4.4.3 IP地址与MAC地址 78
4.4.4 WWW服务 85
4.4.5 域名系统 88
4.4.6 电子邮件 91
4.4.7 文件传输 91
4.4.8 远程登录服务 92
4.4.9 Intranet 92
4.5 小结 92
第5章 程序设计语言 96
5.1 程序设计概述 96
5.1.1 什么是程序 96
5.1.2 程序设计的步骤 97
5.1.3 程序设计语言的发展 98
5.2 程序设计语言模式 99
5.2.1 过程式模式 99
5.2.2 面向对象模式 100
5.2.3 函数式模式 101
5.2.4 逻辑式模式 101
5.3 程序编译过程 102
5.3.1 编译过程概述 102
5.3.2 词法分析 102
5.3.3 语法分析 103
5.3.4 语义分析和中间代码生成 103
5.3.5 目标代码优化 103
5.3.6 目标代码生成 104
5.3.7 表格管理和出错管理 104
5.4 过程式语言的共同概念 104
5.4.1 基本数据类型 104
5.4.2 变量和常量 105
5.4.3 运算符与表达式 105
5.4.4 控制结构 105
5.4.5 函数 107
5.5 面向对象语言的特性 107
5.5.1 面向对象的基本概念 108
5.5.2 面向对象的特征 108
5.5.3 面向对象的特点 109
5.6 当下主流语言的介绍 109
5.6.1 C语言 109
5.6.6 C++ 110
5.6.3 Java 111
5.6.4 Python 111
5.6.5 C# 112
5.6.6 PHP 113
5.6.7 JavaScript 113
5.6.8 Perl 114
5.6.9 Visual Basic.NET 114
5.6.10 Ruby 115
5.7 小结 115
第6章 算法与数据结构 116
6.1 算法概述 116
6.1.1 算法及特性 116
6.1.2 算法的描述方式 117
6.1.3 算法的度量 119
6.2 数据结构概述 120
6.2.1 什么是数据结构 120
6.2.2 数据结构的基本术语 120
6.3 线性结构 121
6.3.1 线性表 121
6.3.2 栈 123
6.3.3 队列 123
6.3.4 串 123
6.4 树状结构 124
6.4.1 树 124
6.4.2 二叉树 125
6.4.3 树的存储 127
6.4.4 树和森林的遍历 128
6.5 图 128
6.5.1 图的定义与术语 128
6.5.2 图的存储 129
5.5.3 图的遍历 130
6.5.4 最小生成树 131
6.5.5 最短路径 132
6.6 排序 132
6.7 计算思维与算法设计技巧 134
6.7.1 计算思维 134
6.7.2 贪心算法 134
6.7.3 分治算法 135
6.7.4 动态规划 136
6.7.5 回溯算法 136
6.7.6 分支界限法 137
6.6 小结 138
第7章 数据库技术概述 140
7.1 数据库系统概述 140
7.1.1 数据库的基本概念 140
7.1.2 数据管理技术的发展 142
7.1.3 数据库系统的构成 144
7.1 数据模型 145
7.2.1 数据模型的三要素 145
7.2.2 数据模型的分类 146
7.2.3 概念模型与逻辑模型 146
7.2.4 实体联系模型 147
7.2.5 常见逻辑模型介绍 147
7.3 关系数据库基本概念 148
7.3.1 关系模型基本概念 149
7.3.2 关系模型的规范化 150
7.4 关系数据库设计 151
7.4.1 系统规划 151
7.4.2 需求分析 152
7.4.3 概念设计 152
7.4.4 逻辑设计 153
7.4.5 物理设计 153
7.4.6 系统实现 154
7.4.7 运行与维护 154
7.5 结构化查询语言 155
7.5.1 数据定义 156
7.5.2 数据查询 157
7.5.3 数据操纵 158
7.5.4 数据控制 158
7.6 数据库管理软件介绍 159
7.7 小结 161
第8章 软件工程 163
8.1 软件工程概述 163
8.1.1 软件的定义 163
8.1.2 软件危机 164
8.1.1 软件工程的定义 165
8.2 软件开发模型 166
8.2.1 软件生存周期 166
8.2.2 瀑布模型 167
8.2.3 原型模型 168
8.2.4 增量模型 168
8.2.5 螺旋模型 168
8.3 软件开发方法 169
8.3.1 结构化方法 169
8.3.2 面向对象的软件开发方法 170
8.4 软件开发过程 170
8.4.1 可行性研究 170
8.4.2 需求分析 171
7.4.3 总体设计 174
8.4.4 详细设计 177
8.4.5 编码实现 180
8.5 软件质量 180
8.5.1 软件可靠性 180
8.5.2 软件质量的度量 181
8.5.3 软件评审 182
8.6 软件维护 182
8.6.1 软件维护的定义 182
8.6.2 软件维护的分类 182
8.7 软件项目管理 183
8.7.1 软件开发成本估算 183
8.7.2 风险分析 184
8.7.3 软件开发进度安排 184
8.7.4 软件项目的组织 184
8.8 小结 185
第9章 操作系统 186
9.1 操作系统概述 186
9.2 操作系统的发展史 187
9.1.2 手工操作(无操作系统) 187
9.2.2 批处理系统 187
9.2.3 多道程序系统(多道批处理系统) 188
9.2.4 分时系统 189
9.2.5 实时系统 189
9.2.6 通用操作系统 190
9.2.7 操作系统的进一步发展 190
9.3 操作系统的特征 191
9.4 操作系统的功能 192
9.4.1 处理机管理 192
9.4.2 存储管理 195
9.4.3 设备管理 198
9.4.4 文件管理 199
9.4.5 用户接口 201
9.5 操作系统的分类 201
9.6 主流操作系统 202
9.7 未来操作系统发展趋势 204
9.8 小结 204
第10章 多媒体技术概述 207
10.1 多媒体的基本概念 207
10.1.1 媒体 207
10.1.2 多媒体 208
10.1.3 多媒体系统 208
10.1.4 多媒体技术 209
10.2 音频处理技术 209
10.2.1 声音的本质与听觉系统 210
10.2.2 声音信号的数字化 211
10.2.3 声音文件的存储格式 213
10.2.4 音频处理软件 214
10.3 色彩信息的表示 216
10.3.1 视觉系统对颜色的感知特点 217
10.3.2 颜色的数字化 217
10.3.3 常见颜色模型 219
10.3.4 颜色模型之间的转换 221
10.4 图像处理技术 222
10.4.1 图像处理概述 222
10.4.2 数字图像的属性 223
10.4.3 图像的种类 226
10.4.4 数字图像处理常用的 方法 228
10.4.5 图像文件的存储格式 228
10.6 视频处理技术 230
10.6.1 视频概述 230
10.6.2 彩色视频的编码方法 231
10.6.3 视频技术相关术语 231
10.6.4 视频文件的存储格式 232
10.7 计算机图形学 234
10.7.1 计算机图形学概述 234
10.7.2 计算机图形学的应用 236
10.7.3 光栅图形学概述 238
10.7.4 OpenGL简介 240
10.8 多媒体数据压缩技术 241
10.8.1 多媒体信息的冗余性 242
10.8.2 数据压缩编码技术 242
10.8.3 常见多媒体压缩算法 243
10.9 小结 245
第11章 社会和职业问题 247
11.1 计算机与社会 247
11.1.1 计算机对社会的影响 247
11.1.2 社会计算 249
11.2 计算机与道德 249
11.2.1 计算机从业人员职业道德 249
11.2.2 计算机用户道德 251
11.2.3 计算机犯罪 252
11.2.4 隐私与言论自由 253
11.3 知识产权 254
11.4 个人与团队 255
11.4.1 个人在团队中的作用 255
11.4.2 个人与团队的合作 256
11.5 计算机与哲学 257
11.5.1 计算机哲学 257
11.5.2 计算机教育哲学 257
11.6 小结 258
第12章 计算机新技术 260
12.1 人工智能 260
12.1.1 人工智能的概念 260
12.1.2 人工智能的发展阶段 261
12.1.3 人工智能的研究领域 261
12.1.4 人工智能的研究方法 262
12.2 物联网 263
12.2.1 物联网概述 263
12.2.2 物联网的发展趋势 263
12.2.3 物联网的关键技术 264
13.3 大数据 265
12.3.1 大数据的基本概念和特征 265
12.3.2 大数据的发展趋势 265
12.3.3 大数据的处理技术 266
12.4 云计算与云平台 268
12.4.1 云计算 268
12.4.2 云平台 270
12.5 小结 271
计算机科学导论pdf