我们生活的现实世界中所有物质都可以抽象为数字、文字、声音、图像和视频,这些数据存储在计算机中,构成了信息世界,经过处理后又服务于我们社会生活的方方面面。计算机科学是一种创造性思维活动,其教育必须面向设计。数据是表征客观事物的可记录可识别符号集合。数据是信息处理的核心基础。数据结构和算法是计算机科学的基石,贯穿了分析问题解决问题的计算思维。
数据结构作为学科的专业基础核心课程,对应于学科中问题求解的理论、抽象和设计的方法论,在学科知识体系中具有核心的重要位置。课程一般开设在二年级,应对前面学习的软件技术总结提高,为后续专业课程提供基础,培养基本数据结构分析能力和综合程序设计实现能力,体现着创造性思维的信息素质培养过程,是计算机科学与技术人才素质框架中的脊梁骨。它承上启下,贯通始终,对学生能力培养至关重要,受益终身。
数据结构及其处理算法是设计与实现系统软件和大型应用软件的重要基础,“数据结构与算法”课程是计算机专业重要的专业技术基础课程。该课程的内容对于培养学生的计算思维、系统分析与设计、算法设计与分析、程序设计与实现等学科基本能力非常重要。本课程系统地介绍了软件开发中常用的数据结构以及相应的 存储结构和操作算法,包括常用的查找技术、排序技术、递归技术等。
掌握“数据结构”中的基本概念、合理组织数据的基本方法、高效处理数据的 基本算法、常用的经典算法、通用的程序设计技术,以及面对实际问题时选择恰当数据结构并设计高效算法的能力,培养学生用计算思维分析问题的能力,提高学生 上机解决较大规模实际问题的能力,为进一步的软件开发打下坚实的基础。
1.课程体系
课程突出数据组织方法与实现技术构成,慕课约26个学时,由基本概念、基本结构(线性、树、图)和基本技术(查找、排序)三大部分组成。基本概念部分重点讲述数据结构定义、内容、方法、评价以及前续基础与课程要求,明确数据结构什么、学什么、怎么学数据结构。基本结构部分重点讲述线性结构、树、图的逻辑结构、存储结构及其加工处理基本算法。基本技术部分包括查找和排序两类经典技术,贯穿了参数传递、指针处理技术、数组应用、递归与队列等重要的程序设计技术;力求表现经典算法思路,为学习者继续展拓提供线索。M课视频每讲均附有小结,每章均有典型题例,便于总结提高。
2.教学团队
课程负责人和主讲人是国家教学名师耿国华教授,她主讲数据结构课程30余年,主持建设了《数据结构》国家精品课程与国家精品资源共享课程,主编数据结构教材4部,课程教学资源被我校和几十余所高校采用。课程团队成员均为从事数据结构课程教学的一线教师,教学经验丰富,能很好胜任线上辅导工作。
3.课程特点
数据结构的学习过程是进行复杂程序设计的训练过程。技能培养的重要程度不亚于知识传授。难点在于让学生理解、习惯、掌握构造思维算法方式。针对《数据结构》技术性与综合性较突出的特点,耿教授倡导实施了“指导—大运动量实践—反馈”教学法。通过作业练习、课堂练习、课程实习、课程设计实践过程,促进了学生逻辑抽象能力的培养。
4.课程定位
数据结构与算法”是计算机学科的重要骨干基础课程,是本科教学的重中之重。作为计算机学科一个重要的分支,“数据结构与算法”课程涉及构筑计算机求解问题过程的两大基石:刻画实际问题中信息及其关系的数据结构和描述问题解决方案的逻辑抽象的算法。
5.资源特色
建设了支撑教学过程与自主学习两个面向的立体化教学资源,随书配备资源光盘、新形态教材、多媒体动画课件等资源支撑教学过程。
面向教学过程资源:与课程内容特点相适应的Flash多媒体课件。提供选件控制方式,便于教学内容重组。以动画展现算法,便于对抽象算法本质的理解。
面向自主学习扩展的教学资源:涵盖练习测试、同步训练、教学大纲、课堂视频、参考文献、相关题库等教学资源,促进学生线上线下主动学习,入门提高。
让我们一起进入数据结构课程的学习,共同提高计算思维能力。
图1 “数据结构与算法”知识体系图
图2“数据结构与算法”与其他课程的关系
目标1:掌握非数值信息处理中,数据元素的基本逻辑结构和存储结构。提升学生抽象思维能力,能将现实世界中的问题,抽象成计算机能够表示的问题,并进行求解。
目标2:掌握数据不同组织形式的优缺点以及算法基本评价指标,能针对同一问题,在各类数据组织和处理方法中,选取最适合的方法。培养学生分析问题、解决问题的能力。
目标3:掌握常用数据处理基本算法,能根据实际问题,选用合适数据结构,编写高效算法,并调试实现
第一章 绪论(总时长:56分26秒,共6讲)
第0讲 主讲老师说课
第1讲 数据结构的基础概念(总时长12分钟)
第2讲 数据结构的内容(总时长5分29秒)
第3讲 数据结构与c语言表示(总时长7分32秒)
第4讲 算法性能评价(总时长8分06秒)
第5讲 算法与算法的描述(总时长14分59秒)
总结与提高(总时长8分20秒)
补充资源1-算法时间复杂度练习
第一章 单元测试
第二章 线性表(一)(总时长:72分22秒,共6讲)
第1讲 线性表的概念(总时长9分20秒)
第2讲 线性表的顺序存储(总时长13分)
第3讲 线性表顺序结构应用示例及小结(总时长7分57秒)
第4讲 线性表的链式存储(总时长10分20秒)
第5讲 单链表的基本运算(总时长20分58秒)
第6讲 单链表运算的应用示例及小结(总时长10分47秒)
补充资源1-顺序表完整程序示例
补充资源2-链表完整程序示例
补充资源3-单链表初始化解析
第二章 单元测试(1)
第二章 线性表(二)(总时长:59分37秒)
第7讲 循环链表(总时长7分05秒)
第8讲 双向链表(总时长7分47秒)
第9讲 静态链表(总时长6分24秒)
第10讲 链式结构小结(总时长7分32)
第11讲 线性表应用——一元多项式表示及相加(总时长9分26秒)
第12讲 顺序表与链表的综合比较(总时长6分08秒)
总结与提高(总时长15分15秒)
第三章 栈与队列(一)(总时长53分23秒)
第1讲 栈的定义与实现(总时长6分59秒)
第2讲 栈的顺序结构(总时长10分54秒)
第3讲 顺序栈的两栈共享(总时长13分19秒)
第4讲 栈的链式实现(总时长8分01秒)
第5讲 栈的应用(总时长8分34秒)
第6讲 栈与递归(上)(总时长10分43秒)
第三章 栈与队列(二)(总时长:52分54秒)
第7讲 栈与递归(下)(总时长:8分40秒)
第8讲 队列的定义与实现(总时长:13分32秒)
第9讲 序列的顺序存储(循环队列)(总时长:11分08秒)
第10讲 队列的应用(总时长:7分08秒)
总结与提高(总时长:12分26秒)
补充资源1-四则运算表达式再解释
补充资源2-中缀表达式与后缀表达式
第三章 单元测验
第四章 串(总时长:51分45秒)
第1讲 串的基本概念(总时长:8分38秒)
第2讲 串的顺序存储结构(总时长:21分04秒)
第3讲 串的链式存储及串的应用(总时长:22分03秒)
第5章 数组与广义表(上)(总时长38分01秒)
第1讲 数组的定义与顺序存储(总时长:19分57秒)
第2讲 规律分布特殊矩阵的压缩存储(总时长:18分04秒))
第五章 数组与广义表(下)(总时长:57分05秒)
第3讲 稀疏矩阵的压缩存储(上)(总时长:17分54秒)
第4讲 稀疏矩阵的压缩存储(下)(总时长:19分16秒)
第5讲 广义表及本章小结(总时长:19分55秒)
第六章 树和二叉树(上)(总时长:48分02秒)
第1讲 树的基本概念(总时长:17分07秒)
第2讲 二叉树(总时长:18分04秒)
第3讲 二叉树的遍历(总时长:12分51秒)
第六章 单元测验1
第六章 树和二叉树(下)(总时长:112分28秒)
第4讲 遍历算法应用(总时长:19分50秒)
第5讲 基于栈的递归消除(总时长:14分27秒)
第6讲 线索二叉树(总时长:17分35秒)
第7讲 由遍历序列确定的二叉树(总时长:7分48秒)
第8讲 树、森林和二叉树的关系(总时长:17分33秒)
第9讲 哈夫曼树及其应用——哈夫曼树(总时长:12分46秒)
第10讲 哈夫曼树及其应用——哈夫曼编码(总时长:14分35秒)
总结与提高(总时长:7分54秒)
第六章 单元测验2
第七章 图(总时长:102分26秒)
第1讲 图的基本概念(总时长:12分20秒)
第2讲 图的存储结构(总时长:12分28秒)
第3讲 图的遍历(总时长:17分05秒)
第4讲 图的连通性(总时长:11分36秒)
第5讲 有向无环图应用——拓扑排序(总时长:12分37秒)
第6讲 有向无环图应用——关键路径(总时长:15分21秒)
第7讲 最短路径(总时长:16分28秒)
总结与提高(总时长:4分31秒)
第七章 单元测验
第八章 查找(总时长:73分53秒)
第1讲 查找的基本概念(总时长:10分31秒)
第2讲 基于线性表的查找法(总时长:10分44秒)
第3讲 树表式查找方法——二叉排序树(总时长:12分08秒)
第4讲 计算式查找法——哈希表的构造(总时长:16分27秒)
第5讲 哈希法的性能分析(总时长:9分02秒)
总结与提高(总时长:15分01秒)
第八章 单元测验
第九章 内部排序(总时长:97分05秒)
第1讲 排序的基本概念(总时长:5分26秒)
第2讲 插入类排序(总时长:14分05秒)
第3讲 交换类排序(总时长:12分01秒)
第4讲 选择类排序(1)(总时长:9分16秒)
第5讲 选择类排序(2)——堆排序(总时长:19分01秒)
第6讲 归并排序(总时长:7分20秒)
第7讲 分配类排序(总时长:12分56秒)
第8讲 排序方法比较(总时长:5分20秒)
总结与提高(总时长:11分40秒)
第九章 单元测验
第十章 外部排序
第1讲 外排序的基础与基本方法(总时长:3分54秒)
第2讲 磁盘排序——生产顺串(总时长:7分35秒)
第3讲 磁盘排序——归并方法(总时长:12分18秒)
第4讲 磁带排序与总结提高(总时长: 9分58秒)
总结
第1讲 课程总结——基础部分 (总时长:11分44秒)
第2讲 课程总结——结构部分 (总时长:15分47秒)
第3讲 课程总结——技术部分 (总时长:10分52秒)
需要具备一定的C语言程序设计基础。
辅助学习资源:
国家精品资源课共享网址:https://www.icourses.cn/sCourse/course_4246.html