《数据结构》课件1教学大纲.docx
《《数据结构》课件1教学大纲.docx》由会员分享,可在线阅读,更多相关《《数据结构》课件1教学大纲.docx(7页珍藏版)》请在文库网上搜索。
1、数据结构课程教学大纲中文课名:数据结构(Python语言描述)英文课名:Data Structure in Python 学 时:72+36 学 分:6学分 先修课程:面向对象Python语言程序设计 适用专业:计算机科学与技术、人工智能、软件工程、网络工程等计算机相关专业一、课程性质与任务数据结构课程属于计算机科学与技术相关专业本科生的主干课、专业基础课程,也是本专业的学位课程。它在计算机类的专业知识结构中起着非常重要的作用,帮助学生培养问题分析、识别判断的能力,并用计算机解决实际问题打下坚实基础。数据结构是理论性和实践性都较强的课程,其理论部分介绍:栈、队列、线性表、二叉树、树和图等经典数
2、据结构的概念和特点,本课程采用 Python语言进行存储表示和算法实现,课程内容上注重研究计算机科学及现实世界中各种数据结构的运用,并讨论计算机中最常见的查找、排序算法的不同实现方法及性能。通过本课程的学习,使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应算法,并初步掌握算法的时间分析和空间分析的能力;另外,通过在数据结构实践课程中复杂程序设计的训练,进一步巩固所学的相关理论知识,增强对数据结构概念和原理的理解,培养学生的数据抽象能力以及编写质量高、风格好的应用程序的能力,为后续课程的学习打下良好的理论基础和实践基础。二、教学目标本课程的主要
3、教学环节有理论教学、实验教学,具体教学目标如下:目标1:使学生掌握线性表、栈、队列、串、数组、树、二叉树、图等常见的数据结构的基本概念、特点和存储表示;使学生具有针对复杂工程问题进行分析、比较、选择、优化数据结构(建模)和存储结构的能力。目标2:根据已学的各种不同数据结构的概念和特点,进行存储结构设计和PYTHON语言实现,并完成其基本操作的算法及程序实现。包括各种基础数据结构的算法实现,对一些实际应用设计解决方案,如哈夫曼编码设计、最短路径算法设计、拓扑排序算法设计、不同的查找、排序等操作的算法设计与实现。目标3:学会对算法进行性能分析,用时间复杂度和空间复杂度等指标,分析比较各个算法的性能
4、;进而设计出更高效的算法。目标4:通过对各数据结构及存储实现的学习和分析,对不同逻辑结构、不同存储结构、不同的时间复杂度,不同的查找算法,不同的冲突解决方案,不同的排序算法之间的区别和适用场合进行比较,得出如何合理选择的结论。目标5:了解数据结构和算法相关的新知识和新技术,能以自然语言、流程图和伪语言算法等形式描述新算法,发表自己观点,进行双语沟通和交流。目标6:具有运用现代信息获取方法进行文献、知识检索能力,看懂数据结构领域的学术资料,对数据结构及算法的新发展、新应用有所了解,撰写调研报告,并能清晰汇报所做工作。三、教学内容第1章 Python语言程序设计基础数据结构课程中常用的Python
5、语言知识的总结和概览,主要供学生复习和自学使用。第2章 数据结构概述(建议4学时)教学内容:数据结构的基本概念;数据结构课程研究的内容;算法的基本概念;算法分析。教学重点:数据结构的基本概念;数据的逻辑结构、存储结构以及二者之间的关系;算法及算法的特性;大记号时间复杂度分析。教学难点:抽象数据类型;算法的时间复杂度分析。教学要求:认识到本课程在计算机及相关学科的重要性,明确课程的学习目标及学习方法;理解程序设计的一般过程;理解数据结构和算法在程序设计中的作用;熟练掌握数据结构的基本概念;掌握算法的基本概念、衡量算法好坏的衡量标准,时间复杂度的概念及算法分析的方法;了解Python语言内置结构常
6、用操作的时间性能。 第3章 线性表(建议8学时)教学内容:线性表的定义和基本操作;线性表顺序存储结构及基本操作算法实现;线性表链式存储结构及实现;顺序表和链表各个结构之间的比较。教学重点:顺序存储结构和链接存储结构的基本思想;顺序表和单链表的基本算法;顺序表和单链表基本操作的时间性能;顺序表和链表之间的比较。教学难点:基于单链表的算法设计。教学要求:熟练掌握线性表的逻辑结构,熟练掌握顺序表及其算法实现,熟练掌握单链表及其算法实现,掌握单链表、双向链表、循环链表等线性表的链式实现方案及基本操作算法实现,掌握顺序表和链表各自的优缺点和适用场合。第4章 栈(建议6学时)教学内容:栈的定义和基本操作;
7、栈的顺序和链式存储结构及实现;括号匹配检验、后缀表达式求值、中缀表达式求值、迷宫求解等栈的应用。教学重点:教学重点是栈的后进先出的特性及应用。教学难点:中缀表达式求值等应用。教学要求:熟练掌握栈的操作特性;熟练掌握顺序栈存储结构及实现;掌握栈的应用场合。第5章 队列(建议4 学时)教学内容:队列的定义及基本操作;队列的存储结构及实现,杨辉三角形的输出、迷宫求解等队列的应用;双端队列、优先队列;Python中的队列。教学重点:队列的操作特性;队列的存储及基本操作的实现。教学难点:循环队列的存储方法;循环队列中队空和队满的判定条件。教学要求:熟练掌握队列的操作特性;熟练掌握循环队列存储结构及实现;
8、熟练掌握链队列存储结构及实现;掌握队列的应用;了解双端队列和优先队列。第6章 递归(建议6 学时)教学内容:递归的概念;递归定义的方法;线性表及其算法的递归定义;递归算法举例;递归与栈的关系;递归的工作原理;递归算法的性能分析;递归算法的设计。教学重点:递归的概念;递归定义的方法;递归算法的设计。教学难点:递归算法的设计;递归算法的性能分析。教学要求:掌握递归的概念以及递归与栈的关系;理解递归的工作原理;重点掌握递归算法的设计方法。第7章 串和数组(建议4学时)教学内容:字符串的逻辑结构和存储结构,模式匹配算法;数组的逻辑结构、存储结构及寻址;特殊矩阵的压缩存储方法。教学重点:串的模式匹配算法
9、;二维数组的存储和下标函数;和特殊矩阵的压缩存储和下标函数。教学难点:KMP算法,next函数求解。教学要求:掌握字符串的逻辑结构;理解字符串的存储结构;掌握模式匹配BF算法;理解模式匹配KMP算法;熟练掌握二维数组的存储结构及下标函数;掌握特殊矩阵的压缩存储。第8章 二叉树(建议8学时)教学内容:二叉树的定义、相关概念和基本术语;二叉树的性质;二叉树的存储结构;二叉树的操作;堆与优先级队列;哈夫曼树及哈夫曼编码。教学重点:二叉树的性质;二叉树的二叉链表存储表示;二叉树的遍历及递归算法。教学难点:二叉树的非递归遍历算法;二叉树的建立算法;哈夫曼算法。教学要求:熟练掌握二叉树的定义及基本性质;熟
10、练掌握二叉链表存储结构及其下的遍历递归算法;理解二叉树的其他存储结构;理解遍历的非递归算法;掌握二叉链表下的层次遍历及建立算法;掌握堆的概念和优先队列的操作;掌握哈夫曼树及哈夫曼编码。第9章 树(建议4学时)教学内容:树和森林的概念;树的性质;树的存储结构;树、森林和二叉树之间的转换;树和森林的遍历;树的孩子兄弟链表存储及基本操作实现。教学重点:树与二叉树的转换;树和森林的遍历。教学要求:掌握树和森林的概念、树的性质和树的存储结构;熟练掌握树、森林和二叉树之间的转换;熟练掌握树和森林的遍历,了解树和森林的遍历序列与对应二叉树遍历序列间的关系。第10章 图(建议10 学时)教学内容:图的图的定义
11、和相关术语;图的图的邻接矩阵、邻接表、邻接字典表示;最小生成树;最短路径;有向无环图。教学重点:图的基本术语;图的存储表示;图的遍历;图的经典应用。教学难点:图的遍历算法;Prim算法;Kruskal算法;Dijkstra算法;Floyd算法;拓扑排序算法;关键路径算法。教学要求:掌握图的定义及基本术语;掌握图的深度优先、广度优先遍历方法。熟练掌握图的邻接矩阵存储及算法实现;掌握图的邻接表存储及算法实现;掌握Prim算法、Dijkstra算法、拓扑排序算法;理解Kruskal算法、Floyd算法、AOV网的定义及性质、AOE网的定义及性质、关键路径算法。第11章 查找(建议8学时)教学内容:查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 教学大纲