《数据结构与算法(Python版)》课程教学大纲

《数据结构与算法(Python版)》课程教学大纲

一、课程信息及课程简介

(一)课程信息

课程英文

名称

DataStructureandAlgorithm(Python)

学分

5

总学时

80

课程

编码

0701320008

理论

学时数

64

实践

16

适用

专业

信息与计算科学专业

先修课程

Python

开设课程学院

理学院

类别

□通识课程□专业基础专业(必修□限选□任选)□实践环节

(二)课程简介

按照国家普通高校本科专业教学质量标准,《数据结构》是信息与计算科学专业的主干课程之一。数据结构是计算机各专业的专业基础课。它是操作系统、数据库、编译原理等软件专业基础课和专业课的重要基础;它还是进行程序设计,尤其是进行高水平的应用程序和系统程序设计必不可少的基础。

二、课程目标

(一)具体目标

通过学习本课程,学习者应:

课程目标4:具有国际视野,并能够跟踪数据处理领域前沿技术发展和较强的创新能力;(国际视野和创新能力)

(二)课程目标与毕业要求的关系

课程目标

支撑的毕业要求

支撑的毕业要求指标点

课程目标1

毕业要求3.设计/开发解决方案:能够运用所学的数学方法和计算机技术解决信息与计算科学领域内的实际问题,能够在数据处理中运用新型计算理论。

能够利用各类算法方法对具体的问题进行建模,并设计有效算法,最终对实际问题给出有效的方法。

课程目标4

课程目标5

毕业要求5.现代工具:能够针对实际问题,使用恰当的技术和专业软件,设计和开发新技术或新方案,并将新技术用于预测和模拟。

有能力对实际问题具有联想、洞察能力、综合分析问题能力,进而能够利用Python解决问题。

三、课程教学内容对课程目标的支撑

(一)理论教学安排

章节或知识模块

教学内容

支撑课程目标

及基本要求

学时

分配

教学方法与

学生任务

第一部分

数据结构与算法

1.1数据结构的概念、内容。

1.2算法的概念、评价标准、描述方法、性能分析。

支撑课程目标1

基本要求:

1.了解数据结构、算法的基本概念。

2.了解数据结构的地位。

3.了解各种算法描述方法和算法设计的基本要求。

4.掌握对算法的评价标准和算法效率的度量方法。

5.通过学习了解目前中国在数据结构与算法领域的发展,树立民族自豪感与自信心,明白千里之行始于足下的道理。

2

教学方法:讲授法、案例法、讨论法、练习法等。

学生任务:

1.理解逻辑结构和存储结构的区别。

第二部分

Python开发环境

2.1Python语言的发展。

2.2Python语言特点。

2.3Python程序开发工具介绍。

支撑课程目标1、5

1.了解程序设计语言及其发展历史。

2.了解Python语言的特点。

3.掌握程序设计的一般过程。

4.理解经典力学时空观的意义与局限性,树立科学的宇宙观。

5.通过Python语言的学习和实践培养精益求精的“工匠精神”,提升专业自信和职业素养。

教学方法:讲授法、演示法、案例法、讨论法、练习法等。

1.Python语言环境安装及使用。

2.Python语言的基本结构。

第三部分

Python数据类型

3.1常量、变量和表达式

3.2Python的基本数据类型

3.3运算符与表达式

3.4列表

3.5元组

3.6字符串

3.7字典

3.8集合

1.理解数据类型的概念、作用以及Python语言的基本数据类型。

2.掌握常量、变量基本概念。

3.掌握Python语言各类运算符的含义、运算符的优先级和结合性、表达式的构成以及表达式的求解过程。

4.掌握序列基础知识。

5.熟练掌握列表的定义、常用操作和常用函数。

6.熟练掌握元组的定义和常用操作。

7.熟练掌握字典的定义和常用操作。

8.掌握字符串格式化、字符串截取的方法。

10.熟练掌握字典的定义和常用操作。

11.熟练掌握集合的定义和常用操作。

12.能认识到应用算法解决社会实际问题的重要性和意义,能体会数据结构与算法与人和谐发展的关系。

8

1.数据类型的作用、变量的定义,各类运算符以及构成的表达式的求解。2.序列、列表、元组的定义和常用操作。

3字典、集合的定义和常用操作;

4.完成作业与练习。

第四部分

Python三大结构

4.1数据的输入与输出

4.2单分支选择结构

4.3双分支选择结构

4.4多分支选择结构

4.5while循环结构

4.6for语句结构

4.7循环的嵌套

1.掌握程序的三种基本结构。

2.掌握顺序结构程序设计。

3.熟练掌握Python语言中输入输出格式的规则和用法。

4.熟练掌握if语句的三种形式和用法以及if语句的嵌套使用。

5.掌握选择分支结构的应用。

6.熟练掌握循环结构while、for语句的规则和用法。

7.熟悉continue、break、pass语句的用法。

8.掌握循环结构的嵌套规则。

9.利用算法的价值观,理解和评价大数据处理过程中对环境、社会可持续发展的影响。

1.数据的输入输出。

2.if语句的三种形式和使用方法。

3.循环结构的应用。

第五部分

函数

5.1函数的定义与调用

5.2函数的参数及返回值

5.3递归函数

5.4变量的作用域

5.5模块

1.理解函数的作用。

2.熟练掌握函数定义和函数调用的规则和用法。

3.掌握函数参数传递的规则和用法;理解函数的嵌套和递归调用。

4.掌握模块定义及导入方法。

5.通过函数的学习,强调严谨求实的科学态度。启发引导学生运用辩证的观点看待问题、分析问题,在认识事物的时候,既要看到事物相互区别的一面,又要看到事物相互联系的一面。

1.函数的作用、定义和调用。

2.函数的参数传递、递归调用。

第六部分

线性表

6.1线性表的逻辑结构定义、基本操作

6.2两种存储结构中基本操作的实现;

6.3栈的应用。

6.4队列的应用。

6.5串的应用

支撑课程目标1、4

1.理解线性表的概念、定义、逻辑结构和存储结构。

2.熟练掌握线性表的顺序存储结构及其各种基本运算。

3.熟练掌握单链表等链式存储结构及其各种基本运算。

4.结合算法学习,加深对辩证唯物主义的理解,提升思辨能力,透过现象看到隐藏的本质。

10

1.线性表的特征;顺序表、单链表的存储结构及其各种基本运算。栈和队列的特点、存储方式及基本操作;栈和队列的应用。串的模式匹配算法。

2.顺序表和链表这两种存储表示方法的综合比较,静态链表的存储表示方法。采用栈和队列数据结构解决实际具体问题;串的KMP模式匹配算法。

第七部分

树与二叉树

7.1树的概念

7.2二叉树的定义、性质、存储结构

7.3二叉树的遍历及基于遍历的应用

7.4树、二叉树之间的转换

7.5哈夫曼树及其应用

1.理解树的基本概念及其存储结构。

2.熟练掌握二叉树的定义、性质以及各种存储结构和遍历算法。

3.掌握线索二叉树的概念、存储结构及线索化算法。

4.掌握树和森林与二叉树间的转换,掌握哈夫曼树的概念、存储结构和应用。

5.通过哈夫曼树的学习,培养精益求精、严谨求实的工作态度,弘扬工匠精神,培养爱国主义情操。

1.二叉树的遍历算法及基于遍历的简单应用。

2.树和森林与二叉树间的转换。

3.哈夫曼树的概念、存储结构和应用哈夫曼树构造哈夫曼编码。

第八部分

8.1图的基本概念

8.2图的存储结构;

8.3图的遍历

8.4图的应用

1.理解图的基本概念。

2.掌握图的邻接矩阵和邻接表的存储结构。

3.熟练掌握图的深度优先和广度优先遍历算法。

4.理解图的连通性、最小生成树的概念。

5.掌握求最小生成树算法。

6.掌握求最短路径的算法。

7.通过图的学习,明白奋斗的过程远比最终的结果重要,正确面对成功与失败,学会实事求是的科学精神。

6

1.图的邻接矩阵和邻接表的存储结构。

2.图的深度优先遍历算法和广度优先遍历算法。

3.图的最小生成树算法、图的求最短路径的Dijkstra算法、Floyd算法。

第九部分

查找

9.1查找的概念以及效率的评价方法

9.2基于线性表的查找——顺序查找、折半查找、索引查找

9.3基于树的查找—-二叉排序树、平衡二叉排序树

9.4哈希查找法的概念和构造方法

1.理解查找的概念及其效率的评价方法。

2.理解静态查找表的概念,熟练掌握顺序、折半和分块查找算法。

3.理解动态查找表和二叉排序树的概念。

4.了解平衡二叉树的概念,创建调整过程。

5.理解哈希表的含义,掌握哈希函数的构造和处理冲突的基本方法。

5.通过学习查找算法,学会运用宏观全局的战略眼光分析问题、解决问题,增强求真务实、实践创新、精益求精的精神。

1.顺序、折半查找算法、二叉排序树的插入、删除和查找算法。

2.哈希函数的构造和处理冲突的基本方法;查找成功和不成功时的平均查找长度计算方法。

第十部分

排序

10.1排序的概念以及排序算法的性能评价;

10.2插入类排序——直接插入排序、折半插入排序、希尔排序;

10.3交换类排序——冒泡排序、快速排序;

10.4选择类排序——简单选择排序、堆排序;

10.5归并类排序

1.掌握插入类排序的算法:直接插入排序、希尔排序。

2.掌握交换类排序的算法:冒泡排序、快速排序。

3.掌握选择类排序的算法:简单选择排序、堆排序。

4.了解归并排序思想。

5.通过学习逐步树立全局观念和大局意识,学会运用宏观全局的战略眼光分析问题、解决问题。

1.理解快速排序、堆排序、归并排序等排序算法的思想。

(二)课内实践教学安排

序号

项目名称

支撑课程目标及基本要求

类型

每组人数

教学方法与学生任务

1

Python编程

支撑课程目标1、4、5

1.Python编程环境的安装及使用、顺序、选择结构的设计的应用。

2.循环结构的设计方法及循环控制语句的应用。

3.函数的定义、函数的嵌套以及递归调用,并体会函数的特点。

设计

教学方法:演示法、案例法、讨论法、练习法等。

掌握Python编程。

1.栈的应用。队列的应用。串的应用。

掌握栈、队列和串的应用。

3

树和二叉树

2.应用哈夫曼树构造哈夫曼编码。

验证、设计

掌握二叉树的创建、哈夫曼树和哈夫曼编码。

4

1.图的深度优先遍历算法和广度优先遍历算法。

2.图的最小生成树算法、图的拓扑排序和关键路径算法、图的求最短路径的Dijkstra算法、Floyd算法。

验证

掌握最小生成树实现算法,最短路径算法。

1.顺序查找、折半查找、索引查找。

2.二叉排序树、平衡二叉排序树。

掌握几种查找方法。

1.直接插入排序、希尔排序。

2.掌握交换类排序的算法。

3.冒泡排序、快速排序。

4.掌握选择类排序的算法:简单选择排序、堆排序。

5.了解归并排序思想。

掌握集中排序方法。

注:实验类型:演示、验证、操作、综合、设计、研究。

四、考核方式及成绩评定

(一)考核方式

课程考核方式分为过程考核和期末考核。过程考核方式包括平时作业、阶段性测试、课内外学习表现等;期末考核采用闭卷考试方式。

(二)成绩评定

1.总成绩评定

总成绩=过程考核成绩*60%+期末考核成绩*40%

2.过程考核成绩评定

过程考核成绩(100%)=考核方式A(30%)+考核方式B(20%)+考核方式C(50%)

成绩评定方式:

(1)考核方式A:课程作业:围绕课程目标进行作业的设计,考核学生对于概念的理解情况,以及学生对于知识点的掌握、应用情况;

(2)考核方式B:课内外学习表现:围绕课程目标对学生的出勤情况、线上线下学习任务的完成情况进行考核,综合评价学生科学素养的提升、责任感的树立情况;

(3)考核方式C:课程实践:通过课外进行实验预习,对实验内容进行分析和设计,写出基本的待测程序代码。教师在实验课上监督实验进行情况,同学生进行必要的讨论,老师要对实验的中间过程和最终结果进行检查,并将检查结果作为实践考核成绩的依据。

3.期末考核成绩评定

(三)课程目标达成的考核评价方式

考核评价方式

过程考核

期末

考核

课程作业

课内外学习表现

课程实践

(四)课程目标达成的考核评价标准

考核评价标准

高于预期

达到预期

低于预期

优秀

良好

合格

不合格

1、4、5

课内外学习表现:

积极参与教学互动

愿意参与教学互动

参与教学互动

不参与教学互动

课程实践:积极参与实践教学互动,讨论全参与。

课程实践:参与实践教学互动,参与讨论。

课程实践:参与实践教学互动。

课程实践:不参与实践教学互动和讨论。

五、课程反馈

学生可在学习过程以及学习结束后,根据课程的学习情况及时从任课教师处获得学习反馈,以便改进学习。任课教师主动进行过程反馈,在过程中根据学生学习情况,调整优化教学内容和方法,使学生达成课程目标。

六、课程评价与改进

课程考核结束后,任课教师应遵循学院教学工作委员会通过的课程达成评价机制和评价方法,对本课程的课程目标达成进行评价,出具课程达成评价报告,并报学院教学督导委员会审核。教师根据评价结果,撰写授课总结和改进计划,完善课程目标及考核方式,改进教学方法,优化教学内容,以便更好地支撑毕业要求的达成。

七、教材及主要参考书目

[1]周元哲.数据结构与算法(Python版).北京:机械工业出版社,2020.

[2]周元哲,刘伟,邓万宇.程序基本算法习题解析.北京:清华大学出版社,2018.

[3]周元哲.Python3程序设计基础.北京:机械工业出版社,2019.

THE END
1.算法在生活中的应用算法在计算机科学中有着广泛的应用,但它不仅仅局限于计算机领域,它在生活中也有着广泛的应用。本文将介绍算法在生活中的应用。 二、交通运输领域 1. 路径规划 路径规划是指通过计算出最短路径或最优路径,为用户提供最佳路线。这种方法被广泛应用于导航系统和地图软件中。例如,谷歌地图使用了Dijkstra算法来找到两个https://wenku.baidu.com/view/0ed3885cf211f18583d049649b6648d7c1c70884.html
2.算法一种算法分类方式及其应用算法应用在计算机科学领域,算法是解决问题的有效方法,而对算法进行分类有助于理解它们的特性、优劣以及在不同场景下的应用。常见的算法分类方法,包括按设计思想、问题类型、数据结构和应用领域等,每一类算法会对应有其典型和实际应用。 算法的出现是为了解决问题和简化复杂的任务。它们提供了一种系统的方法来执行特定的计算或操https://blog.csdn.net/wnm23/article/details/138451523
3.算法运用(精选八篇)摘要:装箱问题在实际生产中应用非常广泛, 本文在分析该问题特点的基础上, 提出了使用类CF近似算法和人工鱼群算法相结合的混合人工鱼群算法求解装箱问题, 并给出了具体的算法步骤。跟遗传算法对比, 试验结果表明, 该算法在求解装箱问题所得的结果优于遗传算法, 具有良好的应用前景。 https://www.360wenmi.com/f/cnkeyxrjz387.html
4.图算法图数据库在风控嘲的应用腾讯云开发者社区此时会发现拒绝采样要多走好多轮才可能会落到 R 中,效果反而不好。针对 Node2Vec 这种每个偏概率权重有上限的情况,确实是能够很好地优化,对于通用的情况可能就会出现很差的效果。这时候需要算法同学选择合适的框架去做,也需要算法同学非常了解应用算法和系统算法的原理,做到上下贯通。https://cloud.tencent.com/developer/article/2197696
5.工程应用中的算法设计.docx题号925 工程应用中的算法设计》 考试大纲一、 考试内容根据研究生院要求及原飞机系的特点,对研究生复试内容要求如下:计算方法:工程计算中误差的概念:误差的来源;绝对误差、相对误差、有效数字;误差的传播;选 用算法的若干问题。方程的近似解法:对分法;迭代法;牛顿法。线性方程组的精确解法:高斯消去法;主元素https://max.book118.com/html/2021/0211/7125031060003054.shtm
6.版权前沿大规模微侵权算法侵权的司法应对版权资讯由此所导致的法律规制的难点在于,自动驾驶产品缺陷的技术及法律责任认定的困难、自动驾驶对于现行保险制度的冲击(自动驾驶对于传统保险机制下投保主体、保险对象、保险内容以及责任分担等形成系统性的挑战)、被动接管规则的应用困境等。 基于自动驾驶算法的场景化特征,在自动驾驶汽车设计缺陷的认定上,应通过“理性算法”标准http://www.ccct.net.cn/html/bqzx/2024/0110/4878.html
7.数据挖掘算法及相关应用其缺点是算法的时间复杂度较高,因此不能处理高维度数据。 分析互联网上大众情绪 数据挖掘算法可以对互联网上的数据进行分析,例如分析社交网络上大众的情绪。简单地讲,数据挖掘上是一个自动分类的问题,即把人的情绪分为若干类,然后把网络数据根据内容确定为其中的一类{或者几类)。具体实现的方法大致有两种,第一种是https://www.jianshu.com/p/3e0248280d97
8.数据中台的五个关键要素数据中台的五要素是数据、业务、算法、应用和组织,这五要素是做好数据中台的基本要求,也是帮助企业合理运用数字化平台的重点。 01 数 据 伴随移动互联网的发展,数据量呈爆发式增长,不同规模、不同类型的企业都面临数据质量问题。多变的用户需求和商业场景也https://maimai.cn/article/detail?fid=1740961222&efid=RSQIkiQ0Gsf3Ppa8xVPmXg
9.河南省基础教育资源公共服务平台三、巩固应用,深化拓展。 1、做“想想做做”第1题。 (1)引导学生看图,说图意。 (2)提示:从图上看,可以想8和几合成13,□里就填几。 11-7=□也可以这样计算。 (3)先独立完成,再同伴交流。 (4)全班交流算法。 2、做“想想做做”第2题。 https://www.hner.cn/index.php?r=space/person/blog/view&sid=71b9a25abdd848a0ad72ea0a6ad57138&id=4145173
10.DizzyK/ustccyber数据结构及其算法 教材: 因老师而异 参考书: 数据结构及应用算法, 中国科学技术大学出版社, 袁平波 部分教学班把它作为教材 参考书: 数据结构C语言版第2版, 人民邮电出版社, 严蔚敏 部分教学班把它作为教材 教学内容: 线性表, 栈, 队列, 串, 数组, 树, 二叉树, 图, 查找, 排序 https://toscode.gitee.com/DizzyK/ustc_cyber_security
11.智能汽车域控制器其中,软件操作系统竞争格局较为稳定,多以QNX和Linux及相关衍生版本为主。应用算法则是基于操作系统之上独立开发的软件程序,是各汽车品牌差异化竞争的焦点之一。为实现智能汽车的持续进化,整车厂往往会选择“硬件超配、后续软件迭代升级”的方式。 01、主控芯片https://www.yoojia.com/ask/17-12011576979143169045.html
12.遗传算法算法软件开发基本遗传算法(SGA)中交叉算子采用单点交叉算子。 单点交叉运算 5. 变异 6. 至下一代,适应度计算→选择→交叉→变异,直至满足终止条件 五、遗传算法应用 这里使用具体的应用例子:函数优化 问题的提出 一元函数求最大值: 用微分法求取f(x)的最大值: https://www.open-open.com/lib/view/open1389594522398.html
13.多种智能优化算法应用案例分享附代码1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客?blog.csdn.net/u011835903/article/details/108019744 2.智能优化算法应用:基于灰狼算法的二维Otsu图像阈值分割 智能优化算法应用:基于灰狼算法的二维Otsu图像阈值分割-附代码_Jackhttps://zhuanlan.zhihu.com/p/269185441