课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
SPOC学校专有课程
数据结构与算法
第1次开课
开课时间: 2021年03月10日 ~ 2021年06月29日
学时安排: 3-5小时每周
当前开课已结束 已有 237 人参加
老师已关闭该学期,无法查看
spContent=学完C语言的小伙伴们开启了程序设计的道路,怎么按正规军的要求编写好的程序呢?赶紧开始数据结构与算法的学习吧!本课程细讲解,重实践,手把手教你编码,领略堆栈、队列、树、图等高端武器的强大。来吧,让我们迈入程序猿(媛)的神秘世界!
学完C语言的小伙伴们开启了程序设计的道路,怎么按正规军的要求编写好的程序呢?赶紧开始数据结构与算法的学习吧!本课程细讲解,重实践,手把手教你编码,领略堆栈、队列、树、图等高端武器的强大。来吧,让我们迈入程序猿(媛)的神秘世界!
—— 课程团队
课程概述

     

数据结构与算法是计算机类专业的专业技术基础课程、核心课程,也是其他爱好编程同学必学的一门专业基础课程。它所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其它课程,还是对从事软件工程的开发,都有着不可替代的作用。

      课程主要介绍如何合理地组织数据、有效的存储和处理数据,正确的设计算法以及对算法的分析和评价。通过本课程的学习,要求学生掌握根据各类实际问题,归纳、抽象出数据对象的数据特征及对象间的相互联系,选择合适的数据组织方法和存储方法,设计并实现高效的求解算法。本课程首先综述数据、数据结构和抽象数据类型等基本概念,再从数据类型的角度,分别讨论线性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用;以及从时间上进行定性和定量的分析和比较了各种查找和排序方法。课程学习的基本数据结构及相关算法是程序设计的基础,培养学生基本的、良好的程序设计技能,为后续专业课程的学习打下坚实的基础。

        课程针对实践性强的特点,由简入繁循序渐进的带领学生一行一行实现算法,例题中针对问题描述,分析问题,得出解决方案,到代码的实现,展现完整的过程,让同学们一步一台阶跨上去,达到解决复杂问题的高度。课程设置在线编程题型的作业及客观题型的测试,从实践和理论两个维度进行过程性评测。


授课目标

       1、通过本课程的学习,使学生学会分析研究计算机加工的数据的结构特性,以便为应用所涉及的数据选择适当的逻辑结构、存储结构及其相应的基本操作算法,能用相应知识对计算机中处理的数据选择或建立适当的描述模型;初步掌握算法的时间和空间分析的技术,并学习各种常用算法的基本思想和实现技术,并能对不同的算法和数据描述模型能进行比较和评价。

       2、本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序代码结构清晰、正确易读,符合软件工程的规范。在高级程序设计语言课程所进行的结构化程序设计的初步训练的基础上,进一步培养学生的数据抽象能力和算法分析设计的实践能力,并能认识到解决计算机软件开发的方案有多种可选性。

       3、了解计算机学科的知识组织结构,了解本专业的前沿发展现状和趋势,并能用所学知识解决计算机相应的复杂工程问题,对复杂的工程问题能通过分析研究相关文献,获得关键环节的初步解决方案。


成绩 要求

数据结构与算法课程,帮助大家明白一些经典的数据结构与算法适合什么样的问题,如何去解决问题。要真正明白这些问题,一定要先捋清楚结构概念、原理,再动手实践完成编码。

课程成绩由以下组成:

讨论:5%,需在本课程中参与有效讨论5次以上;

单元测验: 35%,完成每次慕课网上随堂测验及单元测验,其中随堂测验不计入最后总成绩;

期末考试:60%,完成课程最后的期末考试获得成绩。

学习无涯,成绩有限,本课程并不提供证书,祝各位同学在本课程都各有所获!  


课程大纲

第一章 绪论

1.1 什么是数据结构?如何学习数据结构?(09:36)

1.2 算法的定义、描述及分析(15:24)

第一章小测验

第二章 - 顺序表

2.1 顺序表的表示及定义(07:09)

2.2  顺序表的基本操作(08:20)

第二章 链表及实例应用

2.3 链表定义及建立(10:49)

2.4 链表基本操作(7:32)

2.5 循环链表及双向链表(14:11)

2.6 线性表应用举例(5:34)

2.7 应用举例 -约瑟夫及多项式求和(9:55)

第二章 线性表单元测验

第三章 栈和队列—— 栈的定义及其应用

3.1 栈的表示与实现(07:54)

3.2 栈的应用(数制转换及括弧匹配09:10,表达式计算09:26)

第三章 栈和队列——队列的定义及其实现

3.3 队列的表示与实现(07:56)

第三章 栈和队列单元测验

第四章 串

4.1 串的定义与实现(09: 26)

4.2 串的模式匹配(BF算法 05:17,KMP算法08:10)

第四章 串单元测验

第五章 数组和广义表

5.1 数组与矩阵的压缩存储(09:44)

5.2 稀疏矩阵的转置.(06:40)

5.3 广义表的表示(07:34)

第五章 数组与广义表单元测验

第六章 树与二叉树(一)

6.1 树的定义及术语(07:22)

6.2 二叉树及其性质(10:22)

6.3 遍历二叉树(递归方法10:12,非递归方法09:40)

第六章 树与二叉树(二)

6.4 线索二叉树&树与森林(10:52)

6.5 哈夫曼树及其应用(哈夫曼树及哈夫曼编码07:51,算法实现09:04 )

第六章 树与二叉树 单元测验

第七章 图(一)

7.1 图的基本概念(08:23)

7.2 图的表示和实现(09:27)

7.3 图的遍历(09:43)

第七章 图(二)

7.4.1 Prim算法(11:04)

7.4.2 Kruskal算法(09:46)

7.4.3 单源点最短路径Dijkstra算法(11:36)

7.4.4 所有顶点间的最短路径Floyd算法(10:17)

7.4.5 拓扑排序(11:37)

7.4.6 关键路径(11:12)

第七章 图 单元测试

第八章 查找(线性查找、二叉排序树)

8.1 线性查找(09:08)

8.2 树表查找-二叉排序树(08:56)

第八章 查找(平衡二叉树、哈希查找)

8.3 树表查找-平衡二叉树(11:17)

8.4 哈希查找(13:54)

第八章 查找 单元测试

第九章 排序(排序定义、直接插入排序、选择排序、希尔排序)

9.1 排序定义及简单排序

第九章  排序(冒泡排序、快速排序、堆排序、归并排序、基数排序)

9.2 交换类排序(冒泡排序、快速排序)

9.3 堆排序

9.4 归并排序和基数排序

第九章 排序 单元测试

展开全部
预备知识

《计算机程序设计》、《离散数学》

参考资料

(1)邹永林、周蓓、唐晓阳 主编. 数据结构与算法 . 清华大学出版社,2015

(2)邹永林、周蓓、唐晓阳 主编. 数据结构与算法习题解析与实验指导,清华大学出版社,2015

(3)严蔚敏等  主编. 数据结构(C语言版). 清华大学出版社,2007

(4)Mark Allen Weiss著,冯舜玺译.数据结构与算法分析——C语言描述(原书第2版).机械工业出版社.2012

(5)陈越主编.数据结构(第2版).高等教育出版社.2016


源课程

该SPOC课程部分内容来自以上源课程,在源基础上老师进一步增加了新的课程内容

苏州工学院
1 位授课老师
周思林

周思林

讲师

下载
下载

下载App