1、《计算机软件技术基础》自学指导书 东南大学电气工程系 王 磊 说 明 1、 使用教材: 沈被娜等编著《计算机软件技术基础》(第三版),清华大学出版社 2、 先修课程: 高级程序设计语言(C或Pascal) 3、 计划学时数: 90小时自学,30小时面授 4、 答疑与作业: 在自学过程中,若有问题可通过信函(包括E-mail)进行答疑。每章作业应按要求完成。 第一章 软件工程技术基础 一、 教学目的与要求: 通过本章的学习,掌握软件工程的基本理论知识,了解和掌握当前流行的软件开发工具与环境,提高软件开发的能力与水平。 二、 本章内容提要: 1
2、 信息与计算机 2、 软件工程概述: (1) 软件的定义、特性、分类、软件质量的评价。 (2) 软件危机的表现、原因 (3) 软件工程的概念、三要素。 (4) 软件的生命周期。 (5) 软件开发模型(瀑布/快速原型/面向对象/组件)、主要特点。 3、 软件开发过程:各阶段的任务、方法、步骤、文档 (1) 可行性分析 (2) 需求分析 (3) 概要设计 (4) 详细设计 (5) 面向对象分析与设计方法 (6) 软件编码 (7) 软件测试 (8) 软件维护 4、 软件开发管理: 三、 本章的难点与重点: 1、 软件和软件工程的基本概念 2、 软件生命周
3、期各阶段的任务及文档 3、 软件开发的常用模型与方法 4、 面向对象的基本概念和特征 四、 习题: P.21 1.8 P.263 6.1 6.2 第二章 常用数据结构及其运算 一、 本章的教学目的与要求 通过本章的学习,要求学生掌握基本数据结果的定义、实现和应用。基本数据结构包括线性表、树、图等。在求解问题时能选择合理的数据结构,采用恰当的数据结构,设计出合理可行的算法。 在学习过程中可选择部分算法上机练习。 二、 本章内容提要 1、 数据结构概念 (1) 数据结构+算法=程序 (2) 抽象数据类型 (3) 逻辑结构/物理结构 (4) 算
4、法及其效率的分析方法 2、 线性表 (1) 线性表的定义、特性 (2) 基本操作 (3) 顺序存储的向量:特点、不足 (4) 线性链表:单向链表、循环链表、双向链表 (5) 栈和队列(LIFO/FIFO、存储方式、基本操作、应用) (6) 数组(特点、运算、稀疏矩阵的处理方法:特殊稀疏矩阵,随机稀疏矩阵) 3、 树 (1) 树的定义、基本术语、性质(E=N-1)、存储 (2) 二叉树的定义、满二叉树、完全二叉树、平衡二叉树、性质 (3) 二叉树的存储(顺序、二叉链) (4) 树的二叉树表示 (5) 二叉树的遍历及其应用 (6) 二叉树的应用(二叉排序树、哈夫曼树、W
5、PL、判定树) 5、 图 (1) 图的定义、术语(度、有向图/无向图、完全图、子图等) (2) 图的存储(邻接矩阵、关联矩阵、邻接表、十字链表) (3) 图的遍历(DFS/BFS) (4) 图的应用 6、 检索 (1) 检索的概念、方法分类(静态/动态/哈希)、ASL (2) 静态方法:线性/折半/分块的基本思想、ASL (3) 动态方法:二叉排序树查找 (4) 哈希方法:Hash函数、冲突及其解决方法、查找方法、ASL 7、 排序 (1) 概念、基本操作(比较/移动)、分类(内排序/外排序)、分析方法(趟、时空复杂度、稳定性) (2) 插入:直接插入/折半插入 (
6、3) 选择:直接选择/堆排序 (4) 交换:冒泡/快速 (5) 各种方法的排序思想、比较(空间、时间、稳定性) 三、 本章难点与重点 1、 线性表的操作算法 2、 二叉树的概念、遍厉及其应用 3、 检索算法的各自特点及适用情况 4、 排序算法的各自特点及适用情况,算法的比较 四、 习题 P.101 2.5 2.9 2.10 2.12 2.18 2.19 2.24 2 25 2.26 2.29 2.30 2.31(1) (3) 2.32 2.33 2.34 2.35 2.40 2.41 2.42 第三章 操作系统
7、 一、 本章的教学目的与要求 学生通过本章的学习,了解操作系统的发展史,掌握操作系统的各个管理功能的作用及其实现方法,掌握用户接口的作用及使用方法。从而达到理解如何控制和管理计算机系统中软硬件资源的目的。 二、 本章内容提要、 1、 OS的基本概念:定义、配置OS的目的、产生、发展、分类、功能、特点 2、 作业管理:作业及其分类(交互式/批处理)、批处理作业的状态转换、JCB、作业调度 3、 存储管理: (1) 功能、地址映射 (2) 实存管理(分区分配、覆盖、交换) (3) 虚存管理:虚存概念、程序的局部性原理、请求分页式管理、请求分段式管理、请求分段页式管理、动态链接
8、 (4) 各种管理方法的特点: (5) 地址映射的方法、存储保护的实现 4、 进程管理 (1) 进程的概念、特点、与程序的关系 (2) 进程的状态及其转换 (3) 进程实体:程序、数据、PCB (4) 进程调度方法 (5) 多道程序并发中互斥/同步问题及其实现:临界资源/临界区、PV操作 (6) 死锁的概念 5、 设备管理 (1) 设备的分类 (2) 设备的独立性、设备管理的功能 (3) I/O的控制方式、通道技术 (4) 缓冲技术 (5) 虚拟设备与Spooling技术 6、 文件管理 (1) 功能: (2) 文件组织与存取方法 (3) 文件目录管理:FC
9、B、各种目录结构的特点 (4) 文件使用一般模型 7、 用户接口 三、 本章难点与重点 1、 虚拟存储器的概念、请求分页式管理方法 2、 进程与程序的关系 3、 多道程序并发中互斥/同步问题及其实现 4、 中断、通道的概念,设备管理中的若干技术问题 5、 文件目录在文件管理中的作用 6、 用户接口的作用及使用方法 四、 习题 P.171 3.1 3.7 3.8 3.11 3.12 3.14 3.18 3.21 3.22 3.26 第四章 数据库系统 一、 本章的教学目的与要求 通过本章的学习,要求学生了解数据库的基本概念,理解关系
10、数据库的结构与原理,掌握数据库处理数据的方法,能进行简单的数据库设计,使用基本的SQL操纵数据库。 二、 本章内容提要 1、 几种数据管理方式的特点 2、 数据库系统的概念 (1) 数据库 (2) 数据库系统(软件、硬件、DBA、用户等) (3) 数据模型(概念模型、数据模型、存储模型) (4) 三种数据模型 (5) 数据库系统的体系结构(三层模式、两个映射、三个视图、数据独立性的实现) (6) DBMS(功能、组成、工作过程) (7) 数据库应用系统的构成(用户角度的数据库系统的体系结构) 3、 关系数据库 (1) 基本概念(关系、域、属性、关键字、元组、阶、基数
11、关系模式等) (2) 关系代数:运算 (3) 数据依赖及关系的规范化 (4) SQL语言基础 4、 数据库设计 (1) 设计步骤 (2) 概念设计、E-R图 (3) 逻辑设计、E-R图向关系模型的转化、优化 三、 本章难点与重点 1、 数据库的基本概念:特点、数据库的体系结构与数据独立性、数据模型 2、 关系数据模型的特点 3、 关系规范化理论 4、 SQL语言基础 5、 E-R方法 四、 习题 P.209 4.1 4.3 4.7 4.8 (1)、(2)、(3)、(4)、 (5)给出满足第三范式的关系数据库设计结果,并指出各关系的关键字。
12、 自学时间分配及进度表 周次 内容 时间 作业 1 §1.1-§1.4 §6.1 §6.2 5 P.21 1.8 P.263 6.1 2 § 6.2 -§6.4 5 P.263 6.2 3 §2.1 §2.2(线性表、向量、链表) 7 P.101 2.5 2.9 2.10 2.12 4 §2.3(队列/栈及其应用) 3 2.18 2.19 2.24 5 §2.4(数组概念及稀疏矩阵处理) 5 2 25 2.26 6 §2.5.1-§2.5.3(树、二叉树概念、二叉树遍历、) 5 2.
13、29 2.30 2.31(1) (3) 7 §2.5.4二叉树应用(二叉排序树、哈夫曼树、判定树) 5 2.32 2.33 8 §2.6图(概念、存储、遍历) 5 2.34 2.35 9 §2.7查找 (静态、动态、哈希表) 6 2.40 2.41 9 §2.8排序 (插入、选择、交换) 6 2.42 10 §3.1 引言 §3.2 存储管理 5 P.171 3.1 3.7 3.8 11 §3.3(作业管理、进程管理) 5 3.11 3.12 12 §3.3.4 并发 §3.4设备管理 5 3.14 3.18 13 §3.5文件管理 §3.6用户接口 5 3.21 3.22 3.26 14 §4.1 (数据管理技术概论 数据模型与数据库系统结构) 5 4.1 4.3 15 §4.2 关系数据库 (概念、关系代数、关系规范化理论) 5 4.7(关系代数方法) 16 §4.3.3关系数据库标准语言(SQL) §4.4 5 4.7(SQL方法) 17 §4.1.4 数据库设计 §4.5 数据库技术新发展 5 4.8 (1)、(2)、(3)、(4)、 (5)






