算法设计与分析

郭楠

东北大学

   1.为什么要学习《算法设计与分析》?该课程是计算机学科中处于核心地位的专业基础课,面向计算机类本科生,覆盖计算机科学与技术、物联网工程、软件工程、人工智能等专业。

   2.课程的主题是什么?学习以尽量少的计算资源来求解问题的计算机算法。

   3.学习这门课程可以获得什么?通过本课程的系统性学习,可以掌握递归与分治、动态规划、贪心、回溯、分支限界这些经典算法设计策略的核心思想及其相互关联,具备分析算法计算复杂性的理论知识,建立通过算法来减少时间和空间复杂性的计算思维。

   4.这门课有什么特色?(1)你看不到任何代码,真的、伪的都没有,只有方程或函数。是的,我们只分析算法最原始的初等数学的本质。(2)你所看到的方程或函数是如何在计算机上算数的?在你开始各种编程的语言的coding之前,我们先回归到抽象但强大的计算模型上,只有理解了算法是如何在有限状态自动机、图灵机、递归等计算模型上运行的,才能真正理解算法的本质,这也是区分计算机专业和非计算机专业的标志之一。(3)每一个经典问题都有它的前世今生,经典不是陈旧,而是永恒。我们不会止步于20世纪某一年的某个算法,而是对于同一个问题沿着它的时间线贯穿算法演化的脉络,教材之外,我们还有源源不断的论文来一同分享,一同震撼。