本课基于主讲教师在北京大学讲授数据结构与算法课(Python版)的多年教学实践经验,面向具有Python语言程序设计基础的大学生和社会公众,介绍常见的基本数据结构以及相关经典算法,强调问题-数据-算法的抽象过程,关注数据结构与算法的时间空间效率,培养学生编写出高效程序,从而解决实际问题的综合能力。
本课内容包括课程概述、算法分析、基本线性结构、递归与动态规划、排序与查找、树及其算法、图及其算法等。课程将围绕着“算法+数据结构=程序”的思路,以问题求解为导向进行学习,帮助学生提高理论、抽象、设计的能力。
本课注重数据结构与算法的实践与应用,在课程中穿插了生动案例和编程练习,引导学生积极建立数据抽象和层次分析的思维模式,通过解决实际问题来加深对数据组织结构和相应处理算法的学习体会,并学会通过实际应用情况来权衡时空和其它资源开销,达到最优的应用效果。
本课注重数据结构与算法的实践与应用,在课程中穿插了生动案例和编程练习,引导学生积极建立数据抽象和层次分析的思维模式,通过解决实际问题来加深对数据组织结构和相应处理算法的学习体会,并学会通过实际应用情况来权衡时空和其它资源开销,达到最优的应用效果。
具备基本的Python语言程序设计能力,比如学习过这门慕课:[Python语言基础与应用](https://www.icourse163.org/course/0809PKU036-1003479006)
本课程采取百分制,单元测验和作业占45分,讨论区讨论占5分,期末在线考试占50分。
60分-84分可获得合格证书,85分(含)以上可申请优秀证书。证书自愿申请。
[数据结构与算法Python-中文版-内部教材](https://gis4g.pku.edu.cn/download/sessdsa-textbook/ )
[在线英文版教材](https://runestone.academy/runestone/books/published/pythonds/index.html )
[Python3官方中文版文档](https://docs.python.org/zh-cn/3/ )
[Python3烹饪书](https://python3-cookbook.readthedocs.io/zh_CN/latest/index.html )
[在线Python代码规范](https://python-guide.gitbooks.io/python-style-guide/content/ )
Q : 学习这门课需要什么基础?
A : 具备基本的Python语言程序设计能力即可,比如学习过这门慕课:[Python语言基础与应用](https://www.icourse163.org/course/0809PKU036-1003479006)。
Q : 本课程教学使用的Python语言是哪个版本?
A : Python 3.x,本课程代码示例均采用Python 3.x版本。虽然众所周知3.x版本与2.x版本并不兼容,但如今所有Python主流功能库都可以稳定运行在Python 3.x版本下,绝大多数Python程序员都已经使用Python 3.x版本。
Q : 通过Python语言学习数据结构与算法有什么优势呢?
A : 相比传统的C/C++/Java语言描述数据结构与算法,Python语言的抽象层次更高,代码描述更简洁,学习者可以集中注意力在数据的操作语义及其应用,更多关注用合适的数据结构和算法来进行问题求解,而不会被繁杂的代码描述细节所干扰。