课程

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

认证学习
为你提供认证成绩和证书,以及AI高效学习服务
查看详情
大学

国家精品

认证学习

智慧课程

理学工学农学

计算机

经济管理

外语

音乐与艺术

心理学

文史哲法

医学与保健

教育教学

大学生竞赛

软件实训

人工智能

升学/择业

考研

期末突击

专升本

四六级

保研及论文

求职就业

专四专八

大学应试英语

期末资料

终身学习

有声课堂

兴趣技能

hi,小mooc
考研全科400分攻略
SPOC学校专有课程
数据结构与算法设计
第3次开课
开课时间: 2023年02月09日 ~ 2023年06月30日
学时安排: 3
当前开课已结束 已有 183 人参加
老师已关闭该学期,无法查看
spContent=我们生活在信息时代,作为信息的载体——数据,如何在计算机中存储、处理?学了一门编程语言后如何设计算法和解决实际问题?这是很多学习者的困惑,那大家来学数据结构吧! 课程介绍并探讨有关数据组织、算法设计、时间和空间效率的分析,帮助学习者掌握数据的组织方法和一些典型算法的实现,能够针对问题的应用背景分析,选择合适的数据结构,从而培养高级程序设计技能。
我们生活在信息时代,作为信息的载体——数据,如何在计算机中存储、处理?学了一门编程语言后如何设计算法和解决实际问题?这是很多学习者的困惑,那大家来学数据结构吧! 课程介绍并探讨有关数据组织、算法设计、时间和空间效率的分析,帮助学习者掌握数据的组织方法和一些典型算法的实现,能够针对问题的应用背景分析,选择合适的数据结构,从而培养高级程序设计技能。
—— 课程团队
课程概述

    “数据结构”是所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其它课程,还是对从事大型信息工程的开发,都是重要而必备的基础。

    程序设计解决问题往往有多种方法,且不同方法之间的效率可能相差甚远。程序的时间和空间效率,不仅跟数据的组织方式有关,也跟处理流程的巧妙程度有关。本课程将介绍并探讨有关数据组织、算法设计、时间和空间效率的概念和通用分析方法,帮助学习者学会数据的组织方法和一些典型算法的实现,能够针对问题的应用背景分析,选择合适的数据结构,从而培养高级程序设计技能。

    本课程的特点:对每一种重要的经典数据结构,我们都会从实际应用问题出发,导出其定义、实现(存储)方法以及操作实现,并以更丰富的综合应用案例和练习题帮助学习者增强对理论的感性认识,从而明白这些数据结构为什么存在以及在什么情况下可以最好地解决什么样的问题。


授课目标

通过课程的学习,使学生掌握数据组织、存储和运算的基本原理和方法,培养学生从问题入手,分析研究计算机加工的数据对象的特性,为应用所涉及的数据选择适当的逻辑结构、存储结构、基本运算及相应的算法,并通过复杂程序设计的训练,提高程序设计能力,为后续课程的学习以及软件设计水平的提高奠定基础。

成绩 要求

    本课程帮助大家明白理解经典的数据结构为什么存在、以及在什么情况下可以最好地解决什么样的问题。要做到这一点,非自己动手解决问题不可。

    每一周的课后,我们都留有两类练习,一类是在线完成的选择、判定题,称为“单元测验”;一类是在拼题A 上的编程练习,称为“单元作业”。

    课程结束时,我们会安排一次在线期末考试,需要在某一天内用连续的45分钟完成。

   课程学习成绩由以下部分构成:

(1)单元测验:题型为客观题,系统自动批阅给分,占课程成绩的40%。每次测验可进行2次,取最高分。

(2)单元作业:占课程成绩的30%。部分为互评作业,依据作业的完成质量由学生互评给分,要求互评最少个数为5个,未参与互评的学生将给与所得分数的60%;部分为PTA编程作业,依据发布的编程作业完成质量,由PTA系统自动评测给分。

(3)课堂讨论:完成“课堂交流区”版块中的主题讨论,占课程成绩的10%;要求获取满分用户需要在“课堂讨论”中回复的数量至少15个,占课程成绩的10%。

(4)视频学习:按系统记录的视频学习时长由慕课堂统计给分。

(5)课程考试:课程结束后参加课程期末考试,占课程成绩的20%。

课程大纲
第一篇绪论
课时目标:了解数据、数据元素和数据项的概念及其相互间的关系,理解数据结构的逻辑结构、存储结构的联系与区别,掌握算法的描述方法、设计要求、效率的度量。
1.1 什么是数据结构
1.2 抽象数据类型
1.3 什么是算法
1.4 引用和引用参数
算法时间复杂度练习
第二篇线性表
课时目标:了解线性表的定义及其运算,理解顺序表和链表的定义、组织形式、结构特征和类型说明,掌握在这两种表上实现的插入、删除和按值查找的算法,掌握循环链表、双向链表的结构特点和在其上实现的插入、删除等操作。
2.1 线性表的顺序表示和实现
2.2 线性表的链式表示和实现
2.3 线性表的应用
第二篇总结与提高
顺序表算法设计
课时目标:理解典型的顺序表算法代码实现,讲解PTA中的顺序表设计题
顺序表常用算法代码
顺序表算法设计选讲
链表算法设计
课时目标:理解典型的链表算法代码实现,讲解PTA中的链表设计题
链表常用算法代码
链表算法设计选讲
第三篇栈和队列
课时目标:了解栈和队列的定义、特征及在其上所定义的基本运算,掌握在两种存储结构上对栈和队列所施加的基本运算的实现。
3.1 栈的表示和操作的实现
3.2 栈和递归
3.3 栈的应用
3.4 队列的表示和操作的实现
3.5 队列的应用
第三篇总结与提高
栈算法设计
课时目标:理解典型的栈算法代码实现,讲解PTA中的栈设计题
栈常用算法代码
栈算法设计选讲
队列算法设计
课时目标:理解典型的队列算法代码实现,讲解PTA中的队列设计题
队列常用算法代码
队列算法设计选讲
第四篇树
课时目标:了解树的定义、性质及其存储方法,二叉树的性质,二叉树的二叉链表存储方式、结点结构和类型定义,李姐二叉树的遍历方法及算法,掌握线索二叉树,哈夫曼树的构造方法及应用。
4.1 树与二叉树的定义
4.2 二叉树的性质和存储结构
4.3 二叉树的遍历和创建
4.4 二叉树的线索化
4.5 哈夫曼树及其应用
第四篇总结与提高
树算法设计
课时目标:理解典型的树算法代码实现,讲解PTA中的树设计题
树常用算法代码
树算法设计选讲
第五篇图
课时目标:了解图的基本概念及术语,理解图的存储结构(邻接矩阵、邻接表)的表示方法,掌握图的遍历(深度优先搜索遍历和广度优先搜索遍历),理解图的连通性问题,掌握最小生成树和最短路径的构造。
5.1 图的定义和术语
5.2 图的遍历
5.3 最小生成树
5.4 最短路径
第五篇总结与提高
图算法设计
课时目标:理解典型的图算法代码实现,讲解PTA中的图设计题
图常用算法代码
图算法设计选讲
第六篇内部排序
课时目标:了解排序的基本思想和基本概念,掌握插入排序(直接插入排序、折半插入排序、希尔排序)、交换排序(冒泡排序、快速排序)、选择排序(简单选择排序、树形选择排序、堆排序)、归并排序的基本思想、步骤及算法。
6.1 排序概述
6.2 插入排序
6.3 交换排序
6.4 选择排序
6.5 归并排序
6.6 排序算法比较
第六篇总结与提高
内部排序算法设计
课时目标:理解典型的内部排序算法代码实现,讲解PTA中的内部排序设计题
内部排序常用算法代码
内部排序算法设计选讲
展开全部
预备知识

    学过一门编程语言,具有一定编程基础,即可理解主要内容,因为数据结构本质上是不依赖于编程语言的,且编程练习平台可以接受二十余种语言代码的提交。如果学好C语言会更有助于课程的掌握。



参考资料

推荐教辅和资料:

1.《数据结构(C语言版)》(第2版),严蔚敏,李冬梅等编著,人民邮电出版社,2021

2.《数据结构》(第2版),陈越、何钦铭、徐镜春等编著,高等教育出版社,2016

3.《数据结构学习与实验指导(第2版)》,陈越、何钦铭、徐镜春等编著,高等教育出版社,2019


课程练习网站 拼题A(Programming Teaching Assistant),https://pintia.cn/ 本课程的编程练习将在这里布置。


常见问题

Q:我需要配备什么样的计算机?

A配备一台台式机或笔记本计算机就可以用于C语言或C++语言编程,操作系统安装常用的Windows即可,同类操作系统均可。 

Q:我需要安装什么软件才能做这门课的作业?

A任何C语言或C++语言的开发工具都,包括如VS2008及以上、CodeBlocks、DevC++等均可。

Q : 可以使用手机学习吗?

A :   目前可以通过手机App观看课程视频、阅读文档、参与测验、作业、讨论、随堂测验等,但视频中的驻点提问、视频外加字幕等,在手机端无法正常显示。由于作业需要手动填写内容,且手机端无法暂存,为保证作业能够顺利提交,建议作业的相关操作在网页端通过电脑进行参与。

Q : 如何进行同伴互评?

A : 

(1)提交:你需要准备并提交作业。在提交截止时间前,你可以多次提交作业,如果未能在截止时间前提交,你将因为作业未被评分而失去这部分的分数。提交后请确认是否提交成功(即看到作业已提交的提示信息),而不是仅仅保存了作业。

(2)互评:互评只有在提交截止时间过后才可以开始。因此,即使你提前上交了作业,也必须等待提交截止才能进行同伴互评。在这一阶段,你需要评价一定数量(通常是5份)来自同伴的作业,未参与或为完成互评都会扣除相应的分数 

Q :  同伴互评的成绩是如何得出的?

A : 为了避免同伴打分中出现过高或过低的极端情况,系统将会在同伴所评定的分数中取中位数或者平均数,作为该份作业的最终得分 

Q : 如何参加考试?

A : 进入课程学习页面,点击左侧栏的“考试”,即可参加当前正在开放的考试

Q:课程需要多编程多实践,在哪里可以进行编程的训练?

APTAhttps://pintia.cn/ )是本课程的在线测评OJ平台,学习者在线编程, 自动评测、即时反馈,培养学习者编写和优化代码的能力,提升开发应用程序的能力。 

武汉理工大学
2 位授课老师
谢颂华

谢颂华

副教授

范莉莉

范莉莉

讲师

下载
下载

下载App