第1章 计算机网络概论 1
1.1 计算机系统基础知识 1
1.1.1 计算机系统硬件基本组成 1
1.1.2 中央处理单元 1
1.1.3 数据表示 4
1.1.4 校验码 10
1.2 计算机体系结构 12
1.2.1 计算机体系结构的发展 12
1.2.2 存储系统 20
1.2.3 输入/输出技术 31
1.2.4 总线结构 35
1.3 安全性、可靠性与系统性能评测基础知识 38
1.3.1 计算机安全概述 38
1.3.2 加密技术和认证技术 40
1.3.3 计算机可靠性 48
1.3.4 计算机系统的性能评价 51
第2章 程序设计语言基础知识 56
2.1 程序设计语言概述 56
2.1.1 程序设计语言的基本概念 56
2.1.2 程序设计语言的基本成分 61
2.2 语言处理程序基础 67
2.2.1 汇编程序基本原理 67
2.2.2 编译程序基本原理 69
2.2.3 解释程序基本原理 96
第3章 数据结构 99
3.1 线性结构 99
3.1.1 线性表 99
3.1.2 栈和队列 104
3.1.3 串 108
3.2 数组、矩阵和广义表 113
3.2.1 数组 113
3.2.2 矩阵 115
3.2.3 广义表 116
3.3 树 118
3.3.1 树与二叉树的定义 118
3.3.2 二叉树的性质与存储结构 119
3.3.3 二叉树的遍历 122
3.3.4 线索二叉树 125
3.3.5 最优二叉树 126
3.3.6 树和森林 130
3.4 图 133
3.4.1 图的定义与存储 134
3.4.2 图的遍历 138
3.4.3 生成树及最小生成树 140
3.4.4 拓扑排序和关键路径 143
3.4.5 最短路径 146
3.5 查找 149
3.5.1 查找的基本概念 149
3.5.2 静态查找表的查找方法 150
3.5.3 动态查找表 154
3.5.4 哈希表 161
3.6 排序 165
3.6.1 排序的基本概念 165
3.6.2 简单排序 165
3.6.3 希尔排序 168
3.6.4 快速排序 169
3.6.5 堆排序 170
3.6.6 归并排序 173
3.6.7 基数排序 174
3.6.8 内部排序方法小结 175
3.6.9 外部排序 176
第4章 操作系统知识 180
4.1 操作系统概述 180
4.1.1 操作系统的基本概念 180
4.1.2 操作系统分类及特点 181
4.1.3 操作系统的发展 185
4.2 进程管理 185
4.2.1 基本概念 185
4.2.2 进程的控制 189
4.2.3 进程间的通信 189
4.2.4 管程 193
4.2.5 进程调度 195
4.2.6 死锁 198
4.2.7 线程 202
4.3 存储管理 202
4.3.1 基本概念 203
4.3.2 存储管理方案 204
4.3.3 分页存储管理 205
4.3.4 分段存储管理 208
4.3.5 段页式存储管理 209
4.3.6 虚拟存储管理 211
4.4 设备管理 216
4.4.1 设备管理概述 216
4.4.2 I/O软件 217
4.4.3 设备管理采用的相关技术 218
4.4.4 磁盘调度 221
4.5 文件管理 224
4.5.1 文件与文件系统 224
4.5.2 文件的结构和组织 225
4.5.3 文件目录 227
4.5.4 存取方法和存储空间的管理 229
4.5.5 文件的使用 231
4.5.6 文件的共享和保护 231
4.5.7 系统的安全与可靠性 233
4.6 作业管理 234
4.6.1 作业与作业控制 235
4.6.2 作业调度 236
4.6.3 用户界面 238
第5章 软件工程基础知识 239
5.1 软件工程概述 239
5.1.1 计算机软件 240
5.1.2 软件工程基本原理 241
5.1.3 软件生存周期 243
5.1.4 软件过程 245
5.2 软件过程模型 247
5.2.1 瀑布模型(Waterfall Model) 248
5.2.2 增量模型(Incremental Model) 249
5.2.3 演化模型(Evolutionary Model) 250
5.2.4 喷泉模型(Water Fountain Model) 252
5.2.5 基于构件的开发模型(Component-based Development Model) 252
5.2.6 形式化方法模型(Formal Methods Model) 253
5.2.7 统一过程(UP)模型 253
5.2.8 敏捷方法(Agile Development) 254
5.3 需求分析 256
5.3.1 软件需求 256
5.3.2 需求分析原则 257
5.3.3 需求工程 257
5.4 系统设计 260
5.4.1 概要设计 261
5.4.2 详细设计 262
5.5 系统测试 262
5.5.1 系统测试与调试 262
5.5.2 传统软件的测试策略 264
5.5.3 测试面向对象软件 271
5.5.4 测试Web应用 272
5.5.5 测试方法 273
5.5.6 调试 276
5.6 运行和维护知识 278
5.6.1 系统转换 278
5.6.2 系统维护概述 279
5.6.3 系统评价 283
5.7 软件项目管理 284
5.7.1 软件项目管理涉及的范围 284
5.7.2 软件项目估算 287
5.7.3 进度管理 289
5.7.4 软件项目的组织 292
5.7.5 软件配置管理 294
5.7.6 风险管理 296
5.8 软件质量 300
5.8.1 软件质量特性 300
5.8.2 软件质量保证 302
5.8.3 软件评审 304
5.8.4 软件容错技术 306
5.9 软件度量 307
5.9.1 软件度量分类 307
5.9.2 软件复杂性度量 309
5.10 软件工具与软件开发环境 311
5.10.1 软件工具 311
5.10.2 软件开发环境 313
第6章 结构化开发方法 315
6.1 系统分析与设计概述 315
6.1.1 系统分析概述 315
6.1.2 系统设计的基本原理 317
6.1.3 系统总体结构设计 319
6.1.4 系统文档 323
6.2 结构化分析方法 325
6.2.1 结构化分析方法概述 325
6.2.2 数据流图 325
6.2.3 数据字典(DD) 335
6.3 结构化设计方法 337
6.3.1 结构化设计的步骤 337
6.3.2 数据流图到软件体系结构的映射 338
6.4 WebApp分析与设计 340
6.4.1 WebApp的特性 341
6.4.2 WebApp需求模型 341
6.4.3 WebApp设计 344
6.5 用户界面设计 346
6.5.1 用户界面设计的黄金原则 346
6.5.2 用户界面的分析与设计 348
6.5.3 用户界面设计问题 349
第7章 面向对象技术 351
7.1 面向对象基础 351
7.1.1 面向对象的基本概念 351
7.1.2 面向对象分析 354
7.1.3 面向对象设计 355
7.1.4 面向对象程序设计 357
7.1.5 面向对象测试 362
7.2 UML 363
7.2.1 事物 364
7.2.2 关系 365
7.2.3 UML的图 366
7.3 设计模式 378
7.3.1 设计模式的要素 378
7.3.2 创建型设计模式 379
7.3.3 结构型设计模式 384
7.3.4 行为设计模式 394
7.3.5 应用举例 407
第8章 算法设计与分析 416
8.1 算法设计与分析的基本概念 416
8.1.1 算法 416
8.1.2 算法设计 416
8.1.3 算法分析 417
8.1.4 算法的表示 417
8.2 算法分析基础 417
8.2.1 时间复杂度 417
8.2.2 渐进符号 418
8.2.3 递归式 419
8.3 分治法 422
8.3.1 递归的概念 422
8.3.2 分治法的基本思想 423
8.3.3 分治法的典型实例 423
8.4 动态规划法 427
8.4.1 动态规划法的基本思想 427
8.4.2 动态规划法的典型实例 428
8.5 贪心法 433
8.5.1 贪心法的基本思想 433
8.5.2 贪心法的典型实例 434
8.6 回溯法 437
8.6.1 回溯法的算法框架 437
8.6.2 回溯法的典型实例 440
8.7 分支限界法 445
8.8 概率算法 446
8.9 近似算法 448
8.10 数据挖掘算法 448
8.11 智能优化算法 450
第9章 数据库技术基础 455
9.1 基本概念 455
9.1.1 数据库与数据库系统 455
9.1.2 数据库管理系统的功能 456
9.1.3 数据库管理系统的特征及分类 457
9.1.4 数据库系统的体系结构 458
9.1.5 数据库的三级模式结构 461
9.1.6 大数据 463
9.2 数据模型 466
9.2.1 基本概念 466
9.2.2 数据模型的三要素 466
9.2.3 E-R模型 466
9.2.4 数据模型 472
9.2.5 关系模型 473
9.3 关系代数 474
9.3.1 关系数据库的基本概念 474
9.3.2 5种基本的关系代数运算 478
9.3.3 扩展的关系代数运算 481
9.4 关系数据库SQL语言简介 489
9.4.1 SQL数据库体系结构 490
9.4.2 SQL的基本组成 490
9.4.3 SQL数据定义 491
9.4.4 SQL数据查询 496
9.4.5 SQL数据更新 504
9.4.6 SQL访问控制 505
9.4.7 嵌入式SQL 507
9.5 关系数据库的规范化 508
9.5.1 函数依赖 508
9.5.2 规范化 509
9.5.3 模式分解及分解应具有的特性 511
9.6 数据库的控制功能 512
9.6.1 事务管理 512
9.6.2 数据库的备份与恢复 513
9.6.3 并发控制 514
第10章 网络与信息安全基础知识 517
10.1 网络概述 517
10.1.1 计算机网络的概念 517
10.1.2 计算机网络的分类 520
10.1.3 网络的拓扑结构 521
10.1.4 ISO/OSI网络体系结构 523
10.2 网络互连硬件 526
10.2.1 网络的设备 526
10.2.2 网络的传输介质 529
10.2.3 组建网络 531
10.3 网络的协议与标准 534
10.3.1 网络的标准 534
10.3.2 局域网协议 536
10.3.3 广域网协议 541
10.3.4 TCP/IP协议族 544
10.4 Internet及应用 549
10.4.1 Internet概述 550
10.4.2 Internet地址 550
10.4.3 Internet服务 558
10.5 信息安全基础知识 564
10.6 网络安全概述 568
第11章 标准化和软件知识产权基础知识 573
11.1 标准化基础知识 573
11.1.1 基本概念 573
11.1.2 信息技术标准化 579
11.1.3 标准化组织 581
11.1.4 ISO 9000标准简介 584
11.1.5 ISO/IEC 15504过程评估标准简介 587
11.2 知识产权基础知识 588
11.2.1 基本概念 589
11.2.2 算机软件著作权 592
11.2.3 计算机软件的商业秘密权 603
11.2.4 专利权概述 605
11.2.5 企业知识产权的保护 610
第12章 软件系统分析与设计 612
12.1 结构化分析与设计 612
12.1.1 需求说明 614
12.1.2 结构化分析 614
12.1.3 总体设计 616
12.1.4 详细设计 617
12.2 数据库分析与设计 618
12.2.1 数据库设计的策略与步骤 618
12.2.2 需求分析 619
12.2.3 概念结构设计 621
12.2.4 逻辑结构设计 623
12.2.5 数据库的物理设计 625
12.2.6 数据库的实施与维护 628
12.2.7 案例分析 631
12.3 面向对象分析与设计 635
12.3.1 面向对象分析与设计的步骤 636
12.3.2 需求说明 637
12.3.3 建模用例 637
12.3.4 建模活动 638
12.3.5 设计类图 640
12.3.6 建模对象状态 642
12.3.7 建模交互 643
12.4 算法分析与设计 645
12.4.1 C程序设计语言与实现 646
12.4.2 算法设计与实现 659
12.5 面向对象的程序设计与实现 672
12.5.1 设计与实现方法 672
12.5.2 设计模式的应用 672