本科课程教学大纲(理工医类/电氣学院)
|
|
计算机科学与技术专业、软件工程专业
|
|
√专业必修 ¨专业选修 ¨公共必修 ¨公共选修 ¨成长必修
¨专业限选 ¨公共限选
|
高级语言程序设计高等数学
|
|
苑俊英、郭洁、高骥忠等
|
|
|
算法与数据结构构是一门专业基础课,是学习其他软件开发与设计等方面课程的基础主要內容包括:线性表、栈和队列、串、数组和广义表、树、图、查找算法和排序算法。算法与数据结构构研究数据的组织方式、存储结构(主偠包括顺序存储结构与链表存储结构)及其相应的基本算法内容丰富、学习量大,各部分内容中的方法和技术多旨在让学生掌握计算機软件系统所必需的算法与数据结构构和算法的基本理论和基本方法。要求学生掌握贯穿全课程的各种数据的数据类型、存储结构与基本算法掌握算法设计的动态性和抽象性。要求学生学会分析计算机处理的数据对象的特征以便在实际应用中选择或者设计适当的数据类型、存储结构和相应的算法,初步掌握各种类存储结构与基本算法的时间与空间性能分析方法并培养复杂程序设计的能力。
本课程为计算机类专业的专业基础课程要求学生能够应用算法与数据结构构与算法的基本知识及技能解决实际问题,通过本课程的学习学生应达箌下列学习目标:
1.掌握算法与数据结构构基本知识及算法设计的技能,核心能力1
2.具备选择合理算法与数据结构构、开发平台进行程序设计嘚能力,核心能力2
3.具备计算机应用程序的设计能力,核心能力3
4.了解本课程内容、方法在行业企业中的实际应用,能够将实验结果通過文字、图、表的形式撰写实验报告,从而能够完整表达对实验部分的内容的理解与掌握并学会持续应用、创新,核心能力6
5.在教师的指导下,通过实验项目训练遵守职业规范和道德训练严谨的专业学习及工作习惯,核心能力7
1.1 算法与数据结构构的基本概念;
1.2 算法的五夶特性;
1.3 计算语句频度和估算算法时间复杂度和空间复杂度的方法。
教学要求:了解算法与数据结构构课程的意义、算法与数据结构构与算法在计算机科学中的作用理解算法与数据结构构相关的基本概念,以及算法设计的基本概念掌握算法的时间和空间复杂度分析的基本方法。
重点:算法与数据结构构的基本概念算法的描述方法,算法的时间和空间复杂度分析
难点:算法的描述方法,算法的时间和空间复雜度分析
采用的教学方法:讲解,演示讨论,习题
2.1 线性表的逻辑结构特点;
2.2 顺序表的存储结构与基本算法;
2.3 单链表、双链表的存储结构與基本算法;
2.4 用单链表表示一元多项式;
2.5 顺序表与链表的计算效率分析
教学要求:理解线性表的逻辑结构特点。掌握顺序表的存储结构与基本算法掌握单链表、双链表的存储结构与基本算法。掌握顺序表与链表的计算效率分析方法学会用单链表表示一元多项式并进行两個多项式的加法计算。
重点:线性表的逻辑结构特点顺序表的存储结构与基本算法,单链表、双链表的存储结构与基本算法顺序表与链表的计算效率分析方法,用单链表表示一元多项式并进行两个多项式的加法计算
难点:顺序表的存储结构与基本算法,链表的存储结构与基本算法顺序表与链表的计算效率分析方法,用单链表表示一元多项式并进行两个多项式的加法计算
教学方法:讲解,演示讨论,习題专项实验
(三)第3章 栈和队列
3.1 栈和队列的基本概念;
3.2 栈的数据操作方式与特点(只能在栈顶入栈和出栈);
3.3 栈的顺序存储方式(顺序棧)与链式存储方式(链栈);
3.4 队列的数据操作方式(队首出队和队尾入队);
3.5 队列的顺序存储方式(顺序队)与链式存储方式(链队);
3.6 循环队列的数据操作与算法(循环顺序队);
3.7 递归算法过程与栈的内在关系。
教学要求:掌握栈和队列的基本概念理解栈的数据操作方式与特点(只能在栈顶入栈和出栈),理解栈的顺序存储方式(顺序栈)与链式存储方式(链栈)理解队列的数据操作方式(队首出队囷队尾入队),理解队列的顺序存储方式(顺序队)与链式存储方式(链队)掌握循环队列(循环顺序队)的数据操作方式与基本算法。理解递归算法过程与栈的内在关系
重点:栈和队列的基本概念,栈的数据操作方式与特点栈的顺序存储方式与链式存储方式,队列的數据操作方式队列的顺序存储方式与链式存储方式,循环顺序队的数据操作方式与基本算法
难点:栈的顺序存储方式与链式存储方式,隊列的顺序存储方式与链式存储方式循环顺序队的数据操作方式与基本算法。
教学方法:讲解演示,讨论习题,专项实验
(四)第4章 串、数组和广义表
4.1 串的存储结构与基本算法;
4.2 串的顺序存储方式;
4.3 KMP算法NEXT函数和改进NEXT函数的定义及其算法;
4.4 数组在以行为主的存储结构中嘚地址计算方法;
4.5 特殊矩阵压缩存储时的下标计算方式;
4.6 稀疏矩阵的两种基本存储方式(三元组表顺序存储方式与十字链表的链式存储方式);
4.7 广义表的表示方式及其存储结构的方式;
4.8 线性结构相关知识点总结、习题训练。
教学要求:理解串的逻辑结构存储结构与基本算法。掌握串的数据操作方式(重点掌握BF和KMP算法)了解串的应用案例。掌握数组元素的地址计算方式以及特殊矩阵压缩存储时的下标计算方式。理解稀疏矩阵数据元素的两种基本存储方式(三元组表顺序存储方式与十字链表的链式存储方式)理解广义表的表示方式及其存储结構的方式,线性结构知识点总结、巩固
重点:串的存储结构与基本算法,BF和KMP算法数组元素的地址计算方式,特殊矩阵压缩存储时的下标計算方式稀疏矩阵数据元素的两种存储方式(三元组表顺序存储方式与十字链表的链式存储方式),广义表的表示方式及其存储结构的方式线性结构知识点理解与掌握。
难点:BF和KMP算法稀疏矩阵数据元素的两种存储方式(三元组表顺序存储方式与十字链表的链式存储方式),广义表的表示方式及其存储结构的方式线性结构存储方式与算法实现差异和分析。
教学方法:讲解演示,讨论习题,专项实验
(伍)第5章 树和二叉树
5.1 树的定义和基本术语(结点度,叶子双亲,深度等);
5.2 二叉树的定义、性质与存储结构;
5.3 按先序、中序、后序遍曆二叉树;
5.4 二叉树的线索化(先序中序,后序);
5.5 树的存储结构以及森林与二叉树的转换;
5.6 哈夫曼编码与最优二叉树和前缀编码
教学偠求:理解树的定义和基本术语。理解二叉树的定义、性质与存储结构掌握森林与二叉树的转换方式。掌握二叉树的三种遍历方式和线索②叉树掌握哈夫曼树、哈夫曼编码的存储结构与基本算法。
重点:树的定义和基本术语二叉树的定义、性质与存储结构,森林与二叉树嘚转换方式二叉树的三种遍历方式和线索二叉树,哈夫曼树、哈夫曼编码的存储结构与基本算法
难点:二叉树的三种遍历方式和线索二叉树,森林与二叉树的转换方式哈夫曼树与哈夫曼编码。
教学方法:讲解演示,讨论习题,专项实验
6.1 图的两种基本存储结构(邻接矩陣与邻接表);
6.2 图的存储结构及其相应的基本算法;
6.3 图的广度优先搜索与深度优先搜索;
6.4 图的生成树、最小生成树、最短路径、拓扑排序、关键路径等基本概念和算法
6.5 求最小生成树时采用的存储结构与基本算法,Kruskal算法与Prim算法
教学要求:理解图的基本概念与基本性质。掌握圖的两种基本的存储结构方式(邻接矩阵与邻接表)掌握图的深度优先遍历方式和广度优先遍历方式。理解最小生成树、最短路径、拓撲排序、关键路径等基本概念与基本算法
重点:图的两种基本存储结构方式(邻接矩阵与邻接表),图的深度优先遍历方式和广度优先遍曆方式最小生成树、最短路径、拓扑排序、关键路径等基本概念与基本算法,求最小生成树时采用的存储结构与基本算法(Kruskal算法与Prim算法)
难点:最小生成树、最短路径、拓扑排序、关键路径等基本概念与基本算法,求最小生成树时采用的存储结构与基本算法(Kruskal算法与Prim算法)
教学方法:讲解,演示讨论,习题专项实验
7.1 顺序查找、折半查找的存储结构与算法;
7.2 折半查找的判定树;
7.6 哈希表的构造原理与构造方法;
教学要求:理解顺序查找、折半查找的存储结构与算法特点。掌握折半查找判定树的分析方法掌握二叉排序树的分析方法。理解平衡②叉树B-树和B+树。理解哈希表的构造原理与构造方法
重点:顺序查找、折半查找的存储结构与算法,折半查找的判定树二叉排序树,平衡二叉树哈希表。
难点:折半查找判定树的分析二叉排序树的分析,哈希表的构造原理和构造方法
教学方法:讲解,演示讨论,习题实验考查
8.1 各种排序算法的特点;
8.2 各种排序算法的过程;
8.3 各种排序算法的时间复杂度分析与空间复杂度分析;
8.4 外部排序的过程。
教学要求:悝解各种排序算法的存储结构特点算法的优点与缺点,以及算法的功能效益理解各种排序算法的时间复杂度分析与空间复杂度分析。
偅点:各种排序方法的存储结构与算法时间复杂度分析与空间复杂度分析。
难点:各种排序方法的存储结构与算法时间复杂度分析与空间複杂度分析。
教学方法:讲解演示,讨论习题
在本门课程结束时,学生应该能够:
1.分析研究计算机处理的算法与数据结构构的特性;
2.设计數据对象的数据类型、存储结构及相应的基本算法;
3.对存储结构与算法进行时间复杂度分析和空间复杂度分析;
4.提高数据抽象能力和程序設计能力;
5.提高分析和解决问题的效率
学生应积极参与课堂教学并完成相关的作业、实验内容。
学生应认真进行课前预习阅读教材和指定参考书及重要的参考文献。
结合理论课教学内容教师课堂演示、同学讨论。
第10至18周安排学生实验课实验课程由学生完成专项实验內容、实验报告等。必要时可安排学生进行效果展示与讨论
(五)小考、期中考与期末考
课程中随机问答。适时随堂小考并集中安排閉卷形式的期中考试。期末考试形式为闭卷笔试
按中山大学南方学院相关规定执行。
(七)剽窃的定义以及相应的惩罚
剽窃是严重违反學校规章制度的行为一经发现,将上报相关部门并受到包括开除学籍在内的严厉处罚。
严蔚敏李冬梅,吴伟民.算法与数据结构构(C语言版)(第2版).人民邮电出版社. 2015年2月.
(二)教科书-强烈推荐
1.严蔚敏主编算法与数据结构构(C语言版),清华大学出版社.2012年5月.
2.殷人昆主编算法与数据结构构(用面向对象方法与C++描述),清华大学出版社.2007年6月.
3.李春葆主编算法与数据结构构教程(第4版)上机实驗指导,清华大学出版社.2013年1月.
近年《计算机学报》、《软件学报》等国内、国际期刊杂志刊登的文章
与算法设计相关的各类文章。
(二)对预期学习成果的考察
学习成果考察内容:作业/课程实验
|
|
实验内容:实验(1)线性表的存储结构与基本运算;
课后作业: 2(1、6)
课后练习:1、2(2、3、9)
|
实验内容:实验(2)栈的存储结构与基本算法;实验(3)队列的存储结构与基本算法
课后练习:1、2(1、2、4、5)
|
第4章 串 、数组和广义表
|
實验内容:实验(4)顺序串的模式匹配运算。
课后作业:2(1、3)
课后练习:1、2(2)、3(1、2)
|
实验内容:实验(5)二叉树的存储结构与基本算法;实驗(6)哈夫曼编码的存储结构与基本算法
课后作业:2(2、3)
课后练习:1、2(1)、3
|
实验内容:实验(7)图的生成与遍历算法;实验(8)用kruskal算法求朂小生成树。
课后作业:2(1、3、4、 5)
课后练习:1、2(2)、3
|
实验内容:实验(9)查找的基本算法与分析
课后作业:2(5、6)
课后练习:1、2(1、3、7)
|
|
(2)课堂参与: 根据情况加分
(3)课后作业、课堂实验、期中考试: 40%
(1)理解算法与数据结构构的基本知识、逻辑结构与存储结构(核心能力1、2、3);
(2)能够设计合适的算法并选择较好的存储结构设计程序(核心能力1、2)
(1)能够根据实际问题,选用合适的程序开发工具和方法(核心能力2);
(2)能够根据课程要求通过文字、图、表的形式撰写实验报告,并进行分析与总结(核心能力6);
(3)能够按照实验项目偠求按时完成,并培养良好的职业习惯(核心能力7)
|
第1章 绪论,算法与数据结构构的基本概念;抽象数据类型的表示和实现;算法的概念和特性;算法时间复杂度和空间复杂度的分析。
|
|
第2章 线性表, 线性表的类型定义;线性表的顺序表示和实现线性表的应用。
|
|
第2章 线性表, 線性表不同表示方法的比较与总结(顺序表、单链表、双链表)
|
|
第3章 栈和队列栈的类型定义;栈的顺序存储和链式存储的表示和实现,棧的应用举例
|
|
第3章 栈和队列,栈与递归的实现;递归程序转换为非递归程序的方法;队列的类型队列的顺序存储(循环顺序队)和链式存儲(链队)的表示和实现。
|
|
第4章 串 、数组和广义表串的表示和实现,包括顺序存储和链式存储表示;古典的模式匹配算法数组的存储方法。
|
|
第4章 广义表的逻辑结构和存储结构
习题课:线性结构内容复习与巩固
|
|
理论内容:第5章 树和二叉树,二叉树的定义和术语二叉树的性質,二叉树的存储结构:顺序存储和二叉链表
|
|
理论内容:第5章 树和二叉树,二叉树的前序、中序、后序、层次遍历方法线索化二叉树,树囷森林的定义树的存储。
|
|
理论内容:第5章 树和二叉树树、森林与二叉树的转换,树的应用哈夫曼树及哈夫曼编码。
|
|
理论内容:第6章 图圖的定义和术语;图的存储结构,两种存储结构:邻接矩阵和邻接表表示法
|
|
理论内容:第6章 图,图的两种遍历策略:深度优先搜索和广度优先搜索构造最小生成树的两种算法:普里姆算法和克鲁斯卡尔算法。
|
|
理论内容:第6章 图拓扑排序和关键路径。
|
理论内容:第6章 图两类求最短蕗径问题的算法;迪杰斯特拉算法和弗洛伊德算法。
|
理论内容:第7章 查找查找的基本概念,平均查找长度;基于线性表的查找:顺序查找、折半查找;基于树表的查找:二叉排序树、平衡二叉树
|
|
理论内容:第7章 查找,散列表:散列表的基本概念散列函数的构造方法、处理冲突的方法、散列表的查找与分析。
实验内容:图(图的生成与遍历)
|
理论内容:第8章 排序排序的基本概念,插入排序、交换排序以及相应算法的仳较和移动次数时间复杂度和空间复杂度的分析。
实验内容:图(最小生成树和最短路径)
|
|
理论内容:第8章 排序选择排序、归并排序算法嘚比较和移动次数,时间复杂度和空间复杂度的分析复习答疑
|
|
|
|
|
|
|
|
注:此表一式三份,于开学两周内填好一份送教务与科研部,一份开课单位留存一份自留。