SPOC学校专有课程
算法分析与设计
分享
spContent=智能时代的今天,互联网是道开胃菜,人工智能是主菜。不管是AlphaGo打遍天下棋手无敌手,还是红黑客网络大战,程序设计都是必要的元技能。 “如果你控制了代码,那就控制了世界。” 算法不但是程序也是计算机科学的核心和灵魂。在当今复杂、海量信息的大数据处理中好算法往往是一锤定音的利器。
—— 课程团队
课程概述

 

“科学殿堂里陈列着两颗熠熠生辉的宝石,一颗是微积分,另一颗就是算法。微积分成就了现代科学,而算法成就了现代世界。”


Pascal之父Nicklaus Wirth提出的公式“算法+数据结构=程序” 展示了程序的本质。算法不但是程序也是计算机科学的核心和灵魂。


算法分析与设计是一门理论性与实践性兼顾的课程,主要介绍算法分析与设计的基本理论、思想和方法,介绍枚举、递推、贪心、分治、动态规划、回溯、分支限界、网络流、图算法、随机算法等算法设计策略和分析方法。从各个应用领域的大量实际问题出发,分析问题的性质,建立合理的数学模型,选择合适的数据结构,设计结构清晰、正确高效的算法解决之,分析比较算法的性能以及提高算法性能的技巧,培养初步的算法设计与分析能力,培养计算思维和分析解决实际问题的能力,提高学生的科研素质和创新能力。通过实验实践进一步培养算法实现、调试测试和结果分析的基本能力,强化专业核心意识和职业素养,为学习其他专业课奠定扎实的基础。


设计原则


1.从解决问题和应用实例入手,按照提出问题、分析问题、解决问题、总结问题的步骤,培养学生算法基本理论来分析和解决问题的能力。


2.以实践为导向,专题案例与思考讨论相结合, 自动评测和互动交流相结合,引导学生参加小组活动和科技竞赛,培养学生的实践能力、科研创新能力和团队合作能力。


3.适应探究性和碎片化学习,聚集和重组课程内容;适应自主性和多样化学习,线上开放与线下实践相结合;适应多元化和个性化需求,培养学生主动学习、研究和创新意识。


面对各个应用领域的大量复杂问题,最重要的是建立数学模型并设计高效的求解算法。不管未来你将从事何种行业,《算法分析与设计》培养的计算思维和编程能力,会让计算机更好沟通和服务;《算法分析与设计》培养的求解问题能力和创新素养,会让你事半功倍,一览人生风云。

授课目标

课程目标

1. 掌握算法分析与设计的基本理论,学会枚举、递推、贪心、分治、动态规划、回溯、分支限界、网络流、图算法、随机算法等基本方法和设计分析技巧,培养其算法设计的初步能力。

2. 正确分析算法和程序的时间和空间复杂度,以及提高算法的性能。培养其分析算法复杂性的能力和初步分析问题复杂性的能力。

3. 引导学生分析解决现实应用问题,培养计算思维及用计算机分析与解决实际问题等基本能力,培养程序设计、实现、调试测试的基本能力,锻炼其逻辑思维能力和创新能力,强化学生的专业核心意识和职业素养。


成绩 要求

总评成绩=20%测验+20%作业+20%互动讨论+40%期末成绩

课程大纲
预备知识

程序设计基础、数据结构与算法、高等数学

参考资料

1.   王晓东.计算机算法设计与分析(第5版).北京:电子工业出版社,2018.

2.   Anany Levitin.算法设计与分析基础(第3版)[M]. 北京:清华出版社,2015

3.   屈婉玲. 算法设计与分析 (第2版) [M]. 北京:清华出版社,2017.

4.   Thomas H.Cormen. 算法导论(第3版)[M]机械工业出版社,2013.

5.   John Kleinberg.算法设计[M]北京:清华出版社,2007.

6.   Alsuwaiyel. 算法设计技巧与分析[M].北京:电子工业出版社,2010