《数据结构与算法》(Python语言版)课程教学大纲
教学大纲执笔耿祥义页PAGE1
《数据结构与算法》(Python语言版)课程教学大纲
一、课程性质和教学目标
课程性质
数据结构和算法是计算机科学的核心领域、是计算机程序的基础。正确、恰当地使用数据结构和相应的算法决定了程序的性能和效率。数据结构和算法课程的重要性和意义不仅仅在于学习知识技能,同时涵盖了提高编程能力、增强解决实际问题的能力、提高协作能力等诸多方面,一直是计算机科学与技术、软件工程等专业的一门重要的专业必修课程。
教学目标
通过本课程的学习,达到下列目标。
夯实基础
让学习者掌握每种数据结构的特点,恰如其分的使用好相应地数据结构和算法,熟悉基础算法的特点、并能通透理解和正确使用这些基础算法。
注重能力
该课程强调数据结构和算法课程的重要性和意义不仅仅在于学习数据结构和算法本身,同时注重训练、提高学习者的编程能力。教学目标的重要目标之一就是强调怎样正确的使用相应的数据结构和算法、恰如其分的来解决问题,使用一些经典和实用性强的算法思想并结合一些经典的问题来使得学习者掌握如何设计和实现高效、优秀的算法,提高解决实际问题的能力。
强调实用
数据结构和算法与计算机科学紧密关联,常常应用于解决现实中的问题,课程注重结合一些经典问题和某些实际问题,使得学习者通过学习该课程,能加深对实际问题的了解,并具有解决某些实际问题的能力。
面向对象
课程体现Python语言实现数据结构的的特色。
二、教学内容
8.
8.二叉树
10.散列结构
11.集合
12.链表
12.Python的实用算法
13.图论
14.经典算法思想
1.数据结构简介
2.算法复杂度
3.递归算法
4.数组
5.列表
6.栈
7.队列
三、教学环节
教学环节包括:课堂讲授、上机实践、课外作业。通过本课程各个教学环节可以培养学生的自学能力、动手能力、分析解决问题的能力。
1.课堂讲授
(1)教学方法上尽量采用启发式、讨论式教学,在课堂上多提问题,安排一些自学内容,鼓励学生自学、培养学生的自学能力。结合实际问题,更新教学内容,改进教学方法,通过上机实践,培养学生的动手能力和创新能力。
(2)利用多功能教室,结合黑板讲解,演示较大程序的结构及其运行效果,以提高课堂信息量,增加教学的直观性。
2.实践课
根据教学需要,要适当安排实践课。
3.考核
采取期末考试和平时考核相结合的方式。
四、学时分配
本课程总学时是56学时,其中包含课内上机10学时。上机学时的主要目的是针对教材相应的知识点进行基本训练。其中上机内容安排的时间和内容见学时分配建议。5次上机(10学时),教师可更具实际情况确定上机实践的具体内容(也可参考作者提供的上机参考教案)。通过上机实践环节可以加深学生对理论知识的理解和掌握,同时提高学生分析问题、解决问题的能力,培养学生实践能力与创新能力。
整个知识架构分成三大模块-算法基础(基础模块),结构及其算法(重点模块),专项算法(难点模块),如下列三大模块图(不含上机实践)。
算法基础模块
算法基础模块(8学时)
数据结构简介
算法复杂度
递归算法
专项算法模块(8学时)
Python实用算法
图论
经典算法思想
结构及其算法模块(30学时)
数组
列表
栈
队列
二叉树
散列结构
集合
链表
图三大模块
56学时(含上机实践)和教案(见28个参考教案)分配细节如下列学时和教案分配表。
学时和教案分配表
序号
内容
学时(56)
参考教案(28个,含实践)
1
数据结构简介,算法复杂度
4
教案1,教案2
2
递归算法
6
教案3,教案4,教案5
3
上机实践
2
教案6(实践)
4
数组
4
教案7,教案8
5
上机实践
2
教案9
7
列表
6
教案10,教案11,教案12
8
上机实践
2
教案13(实践)
9
栈
2
教案14
10
队列
2
教案15
11
上机实践
2
教案16(实践)
12
二叉树
4
教案17,教案18
13
散列结构
4
教案19,教案20
14
集合
2
教案21
15
上机实践
2
教案22(实践)
16
链表
4
教案23,教案24
16
Python的实用算法
2
教案25
17
图论
4
教案26,教案27
18
经典算法思想
2
教案28
五、先修课程
本课程的先修课程为Python程序设计。
六、教材与参考书
1.教材
《数据结构与算法》(Python语言版),耿祥义张跃平,清华大学出版社2024.
2.参考书
[1]GillesBrassardPaulBratley算法基础[M].邱仲潘,柯渝,徐锋译.北京:清华大学出版社,2005.
[2]易建勋.Python应用程序设计.北京:清华大学出版社,2021.
[3]