课程先引入python的基础知识,逐渐增加应用示例,然后通过《算法神探》故事,了解计算机算法与程序设计的关系,最终通过流程图和python语言特点实现破案中涉及到的各种算法。
(1)通过侦探破案的引人入胜的故事,在破案过程中采用多种问题求解方法,从而意识到如何在生活工作中运用数据结构与算法进行问题求解。
(2)借助故事理解算法,然后介绍如何描述算法,通过raptor流程图设计算法,最后通过python将流程图转换为程序。
(3)本课程的学习不限制编程语言,重点讲授了如何将raptor描述的算法步骤转换为python代码实现。通常一个问题采用raptor转换为python语言实现后,还会分析python语言结构特点,采用更多的方法编程实现。通过这种方法,理解python数据结构背后的实现原理,了解python更多的语言特性,重点是学会提出问题->寻找求解问题的方法(算法)->算法描述->算法流程图描述详细设计步骤->代码实现的过程。
第二部分:python的各种模块应用(持续更新中,下面是已经上传的内容)
(1)pandas读写和操作excel进行问题求解
(2)正则表达式re简介
本学期将增加pygame游戏编程
第三与第四部分作为课外学习资料,课堂上不涉及。
对软件开发有兴趣的非计算机专业的学生
没有编程基础的同学
学习过程序设计语言课程,数据结构课程,算法类课程的同学通过本课程的学习更加深入掌握所学并进行查漏补缺
第二部分 高级应用 属于选修内容,包含python包的使用,机器学习,深度学习等入门内容。本部分分成3章,不作为考试内容,因此没有编程题,期末考试题也不包含第二部分的内容,仅供有兴趣同学选修学习。
第三部分 利用学术资源解决算法问题;第四部分python的各种应用,这部分逐渐扩展。以后会越来越丰富。
>=60分,及格
无
《算法神探》,电子工业出版社, Jeremy Kubica,2017.6
《数据结构与算法》Python语言实现,机械工业出版社,Michael T.Goodrich,2018.9
Q : 没有编程基础可以学习本课程吗?
A : 没有编程基础可以学习本课程。但是,需要投入比较多的精力。我们课程不会单纯讲授python基本语法(第一章介绍了主要语法),主要是通过使用python语言逐渐理解和掌握python语言的使用。如果有python基础学习本课程会更简单,可以将精力投入问题求解上。没有编程基础的同学还需要花时间和精力熟悉python语言本身。
Q : 有c/c++/java等编程基础,可以学习本课程吗?
A : 有任何一门编程语言基础,再学习本课程就非常容易。容易不代表课程内容就简单。恰恰相反,我们对常见的数据结构从多角度进行使用和分析,最后编程实现。如果您只是想提高问题求解能力,建议了解了破案故事之后,自己分析问题并编程求解。遇到困难再看视频中老师如何分析和求解的。如果想转python语言,本课程非常适合您。可以轻松完成语言学习的转换,且不是枯燥的学习,是通过使用语言进行问题求解,这种学习事半功倍。
Q : 学习本课程能够达到什么程度?
A : 如果只是看视频,课后不花时间,学完本课程对编程有基本理解,对python语言有初步了解。如果能够在老师作业提醒基础上完成所有作业,python核心基础已经掌握,且已经具有问题求解的能力。