一、课程编号
二、课程类别:软件工程专业专升本课程。
三、编写说明
1.本大纲参考谭浩强的《C程序设计(第五版)》、李春葆的《数据结构》(第5版)进行编写。
2.本大纲适用于软件工程专业“专升本”考试。
四、课程考核的要求与知识点
《程序设计基础》部分
第1章 程序设计和C语言
1.识记:(1)计算机语言的几个发展阶段;(2)C语言的发展及其特点。
2.理解:(1)C语言程序的结构 ;(2)结构化程序设计方法的思想。
3.运用:(1)运行一个C程序的步骤和方法。
第2章 算法—程序的灵魂
1.识记:(1)算法的概念;(2)算法的特性。
2.理解:(1)结构化程序设计的方法。
3.运用:(1)利用传统流程图和N-S流程图描述算法;(2)用计算机语言表示算法。
第3章 最简单的C程序设计—顺序程序设计
1.识记:(1)常量和符号常量;(2)变量;(3)关键字与标识符;(4)整型、浮点型、字符型数据。
2.理解:(1)整型常量的表示方法;(2)字符数据在内存中存储形式及其使用方法;(3)变量赋初始值;(4)算术运算符和算术表达式;(5)赋值运算符和赋值表达式;(6)逗号运算符和逗号表达式。
3.运用:(1)赋值语句;(2)putchar函数;(3)getchar函数;(4)printf函数;(5)scanf函数;(6)顺序结构程序设计方法。
第4章 选择结构程序设计
1.识记:(1)关系运算符及其优先次序;(2)逻辑运算符及其优先次序。
2.理解:(1)关系运算符与关系表达式;(2)条件运算符与条件表达式。
3.运用:(1)if语句的三种形式;(2)if语句的嵌套;(3)switch结构及break语句的使用;(4)选择结构程序设计方法 。
第5章 循环结构程序设计
1.识记:(1)while语句的语法结构;(2)do…while语句的语法结构;(3)for语句的语法结构。
2.理解:(1)几种嵌套的比较;(2)break语句和continue语句。
3.运用:(1)用while语句实现循环;(2)用do…while语句实现循环;(3)用for语句实现循环。
第6章 利用数组处理批量数据
1.识记:(1)一维数组的定义;(2)二维数组的定义;(3)字符数组的定义。
2.理解:(1)一维数组初始化及元素引用;(2)二维数组的初始化及元素引用;(3)字符数组的引用;(4)字符串和字符串结束标志。
3.运用:(1)字符数组的输入输出;(2)字符串处理函数;(3)利用数组进行程序设计。
第7章 用函数实现模块化程序设计
1.识记:(1)无参函数的定义形式;(2)有参函数的定义形式;(3)空函数的定义形式。
2.理解:(1)对被调用函数的声明和函数原型;(2)局部变量和全局变量;(3)动态存储方式与静态存储方式;
3.运用:(1)函数的形式参数和实际参数;(2)函数的返回值;(3)函数调用的方式;(4)函数的嵌套调用;(5)函数的递归调用。
第8章 善于利用指针
1.识记:(1)地址和指针的概念。(2)字符串的表示形式。
2.理解:(1)指向变量的指针变量;(2)指向数组元素的指针;(3)指针数组的指针变量;(4)指向字符串的指针变量;(5)指向函数的指针变量;(6)指向指针的指针;(7)动态内存分配(malloc,free函数)。
3.运用:(1)指针变量的定义和引用;(2)两个与指针有关的运算符(&和*);(3)指针变量作函数参数;(4)数组名作函数参数;(5)字符串指针作函数参数;(6)用指向函数的指针作函数参数;(7)运用指针变量进行C程序设计。
第9章 用户自己建立数据类型
1.识记:(1)结构体的概念及其定义;(2)共用体类型数据;(3)枚举类型数据。
2.理解:(1)结构体变量的初始化和引用;(2)指向结构体变量的指针;(3)指向结构体数组的指针。
3.运用:(1)结构体数组的定义、初始化、引用;(2)结构体变量作为函数参数;(3)用指向结构体变量的指针作为函数参数;(4)用typedef声明新类型名。
《数据结构》部分
第1章 绪论
1. 识记:(1)数据结构的基本概念:数据、数据元素、数据项、数据对象、数据结构;(2)根据数据元素之间关系的不同特性通常有哪四种基本结构;(3)抽象数据类型的概念;(4)算法、算法的时间复杂度和空间复杂度的定义;
2. 理解:(1)算法的时间复杂度的分析;(2)选择合适的数据结构是解决应用问题的关键步骤;
3. 运用:对于一般算法能分析出其时间复杂度。
第2章 线性表
1. 识记:(1)线性结构的特点;(2)线性表的抽象数据类型;(3)链表中的相关概念:头指针、头结点、首结点、尾结点、尾指针;
2. 理解:(1)线性表的顺序表示和实现,特别是插入、删除算法的实现,并分析其时间复杂度;(2)线性表的链式表示和实现,特别是建表、插入、删除和查找算法的实现,并分析其时间复杂度;(3)链表如何表示线性表中元素之间的逻辑关系;(4)单链表、双向链表、循环链表的区别;(5)顺序表和链表的优缺点;
3. 运用:(1)利用顺序表的结构特征设计算法解决简单的应用问题;(2)利用链表的结构特征设计算法解决简单的应用问题。
第3章 栈和队列
1. 识记:(1)栈的相关概念:栈、栈顶、栈底、空栈等;(2)队列的相关概念:队、队头、队尾等;(3)循环队列的定义。
2. 理解:(1)栈和队列与线性表的异同;(2)栈的逻辑结构特征;(3)顺序栈的实现,特别是进栈和出栈算法的实现;(4)队列的逻辑结构特征;(5)链队列的出队、入队算法的实现;(6)顺序队列(主要是循环队列)的出队、入队算法的实现,溢出的概念及其队空、队满的判定条件;(7)栈和队列的特点,什么样的情况下能够使用栈或队列。
3. 运用:(1)利用栈的结构特征设计算法解决简单的应用问题;(2)利用队列的结构特征设计算法解决简单的应用问题。
第4章 串
1. 识记:(1)串的定义;(2)串的相关概念:长度、子串、空串、位置等。
2. 理解:(1)串与线性表的区别;(2)串的抽象数据类型;(3)串的定长顺序存储方式的算法实现;(4)串的模式匹配算法,特别是KMP算法。
3. 运用:改进的KMP算法。
第5章 树和二叉树
1. 识记:(1)树的定义和相关术语;(2)树的逻辑结构特征;(3)二叉树的定义;(4)最优二叉树(赫夫曼树)的相关概念。
2. 理解:(1)树的三种表示法;(2)二叉树的性质;(3)二叉树的顺序存储结构和链式存储结构;(4)二叉树的三种遍历算法及其实现:先序遍历、中序遍历、后序遍历,并确定三种遍历所得到的相应的结点访问序列;(5)二叉树线索化的目的及实质;(6)树和森林与二叉树之间的转换;(7)赫夫曼树算法的思想。
3. 运用:(1)根据给定的叶子结点及其权值构造出相应的赫夫曼树;(2)根据赫夫曼树构造对应的赫夫曼编码。
第6章 图
1. 识记:(1)图的定义与术语;(2)图的逻辑结构特征;(3)生成树和最小生成树的相关概念;(4)最短路径的含义;(5)关键路径的含义。
2. 理解:(1)图的邻接矩阵和邻接表两种存储结构算法的实现;(2)根据应用问题的特点和要求选择合适的存储结构;(3)连通图及非连通图的深度优先搜索和广度优先搜索算法的实现及时间分析;(4)最小生成树的两种算法:Prim算法和Dijkstra算法的基本思想、时间性能及其各自的特点;(5)拓扑排序的基本思想和步骤;(6)关键路径算法的实现;(7)求单源最短路径的Dijkstra算法的基本思想和时间性能。
3. 运用:(1)对给定的连通图,根据Prim和Kruskal算法构造出最小生成树;(2)对给定的有向图,若拓扑序列存在,则写出一个或多个拓扑序列;(3)在AOE网中,求出活动的最早开始时间和最晚开始时间,得到关键活动,求出关键路径;(4)对于给定的有向图,根据Dijkstra算法构造出单源最短路径。
第7章 查找
1. 识记:(1)查找表以及相关概念;(2)二叉排序树的相关概念;(3)哈希表的相关概念。
2. 理解:(1)顺序查找、二分查找的算法实现和查找效率分析;(2)二叉排序树的插入、删除、建立和查找算法的实现及效率分析;(3)哈希表的构造方法和处理冲突的方法。
3. 运用:哈希表查找方法的应用。
五、课程考核实施要求
1.考核方式
本考核大纲为软件工程专业专升本学生所用,考核方式为闭卷考试。
2.考试命题
(1)本大纲命题内容涵盖了教材的主要内容。
专业综合课程考试科目 | 分 值 分 布 |
《程序设计基础》 | 100分 |
《数据结构》 | 100分 |
合计 | 200分 |
(2)不同能力层次试题的比例为:识记类约占25%,理解类约占35%,运用类约占40%。
(3)不同难易度试题的比例为:较易占30%,中等占55%,较难占15%。
(4)本课程考试试题类型。
试 题 一 | 题号 | 题型 | 分值 |
一 | 选择题(10小题) | 30 | |
二 | 填空题(5个空) | 10 | |
三 | 程序填空题(2小题) | 20 | |
四 | 程序阅读题(4小题) | 20 | |
五 | 程序设计题(2小题) | 20 | |
合计 | 100 | ||
《程序设计基础》部分:试题类型有选择题、填空题、程序填空题、程序阅读题、程序设计题等五种形式,其分值分布如下表:
《数据结构部分》部分:试题类型有选择题、填空题、判断题、读程序写功能、算法设计题等五种形式,其分值分布如下表:
试 题 二 | 题号 | 题型 | 《数据结构》 (分值) |
1 | 选择题(10小题) | 30 | |
2 | 填空题(10个空) | 20 | |
3 | 判断题(10小题) | 10 | |
4 | 读程序写功能(2小题) | 10 | |
5 | 算法设计题(2小题) | 30 | |
合计 | 100 | ||
3.课程考核成绩评定
考试卷面成绩即为本课程成绩。
六、教材和参考书
1.教材
[1] 谭浩强著.C程序设计(第5版)[M].北京:清华大学出版社,2017.8.
[2] 李春葆著.数据结构教程(第5版)[M]. 北京:清华大学出版社,2017.
2.参考书目
[1] 谭浩强.C程序设计(第5版)学习辅导 [M].北京:清华大学出版社,2017.8.
[2] 李峰,谢中科. C语言程序设计[M]. 北京:北京大学出版社,2020.
[3] 李峰,谢中科. C语言程序设计上机指导与习题选解[M]. 北京:北京大学出版社,2020.
[4] 李春葆.数据结构(第5版)学习指导[M]. 北京:清华大学出版社,2017.
[5] 程杰.大话数据结构[M]. 北京:清华大学出版社,2011.