# MIT 6.046: Design and Analysis of Algorithms

## 课程简介

- 所属大学：MIT
- 先修要求：算法入门(6.006/CS61B/CS106B/CS106X or equivalent)
- 编程语言：Python
- 课程难度：🌟🌟🌟🌟🌟
- 预计学时：100h+

6.006的后续课程。授课老师依旧是 Erik Demaine 和 Srini Devadas，此外还有一位新老师 Nancy Lynch.

相比较于“现学现用”的6.006，6.046更加侧重于如何运用课上所学到的内容举一反三，设计出一套完备的算法并能够证明该算法能解决相应的问题。虽然该课程在板书以及作业中的编程语言为 Python，但基本上没有编程作业；绝大部分的作业都是提出要求，然后需要学生进行算法设计以及合理性证明。所以该课程的难度又提高了一大截:)

在该门课程后还有一门 6.854 高级算法，但对于绝大多数考试以及应聘来说，学完该课程基本上已经能覆盖99%的题目了。

## 课程资源

- 课程网站：[Spring 2015](https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/)
- 课程视频：[Spring 2015](https://www.bilibili.com/video/BV1A7411E737)
- 课程教材：Introduction to Algorithms (CLRS)
- 课程作业：[Spring 2015](https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/pages/assignments/)
