数据结构与算法在线教学
本课程针对学习程序设计语言之后,需要开发软件而遇到问题不知怎么处理,怎么寻找解决问题的方法,怎么存储数据及关系,以及学习了《数据结构与算法》课程,但是写程序就感觉无从下手的同学。 关于本课程详细特色请见本页最后的常见问题。
—— 课程团队
课程概述
《数据结构与算法》课程是计算机科学与技术的学科基础课程,不仅是《计算机图形学》、《计算机网络》、《编译原理》、《计算机操作系统》等后续课程的基础理论之一,其应用范围也早已扩展到图像处理与模式识别、海量数据挖掘、科学数据处理、复杂网络分析等许多计算机前沿领域。
本课程研究计算机处理数据的结构特性,学习线性表、树、图等常用数据结构的逻辑结构与存储结构;学习分治递归、动态规划、贪心算法等典型算法,掌握分析与推导算法效率的方法。
通过对本课程的学习,能够解决非数值计算与工程应用问题,达到选择或设计恰当的逻辑结构、存储结构及相应的算法的水平,为学生进一步理论学习和解决实际工程应用问题打下坚实的基础。通过理论知识的系统学习与工程实验的操作,初步培养学生的计算思维能力、算法设计与分析能力、程序设计与编程实现能力、计算机系统的认知、分析、设计和运用能力、工程实践能力。
课程由3位经验丰富的老师讲解,4期开课选课人数均超过2万,学生反馈通俗易懂,获得感强,没有专业基础的小白也能够听懂,考试形式好,教师回答学生问题积极,讨论区活跃能够学到很多东西,能够对问题得到及时有用的解答。课程每一期都根据教学经验和学生反馈进行改进,目前已经很完善。
授课目标
本课程面向计算机专业或者非计算机专业,但有程序设计语言基础的同学。
课程大纲
第一章 绪论
1-教学安排
2-数据结构基本概念,术语与主要学习内容
3-算法
绪论测验
第二章2.1 线性表 (本章内容比较多,需要2周的学习时间)
1-线性表的基本概念
2-基于线性表操作的简单应用
3-线性表的存储结构及基本操作实现
4-线性表的应用
5-栈
6-队列
临时补充内容:7-线性表的基本操作编程视频(请尽量自己实现)
线性表测验
预备知识
程序设计语言(C,C++,java,python等任何一门语言)
本课程以C语言为基础进行讲解,但学习了其他语言的同学可以无障碍学习本课程内的容并同样受益。
证书要求
平时作业:40%
讨论: 10%
期末考试:50%
优秀:>=80
合格:60--79
注意:从2019年9月起,中国大学MOOC开设的课程不再发放免费电子证书,但是认证证书仍然根据最终成绩进行合格证书和优秀证书的发放!
参考资料
林劼,刘震,陈端兵,戴波. 数据结构与算法. 北京:北京大学出版社,2018.8
吴跃,等. 数据结构与算法. 北京: 机械工业出版社, 2010.
王晓东. 算法设计与分析. 2版. 北京:清华大学出版社.
Kleinberg,等. 算法导论. 北京:清华大学出版社.