Prof. Charles Leiserson
Prof. Erik Demaine
MIT Course Number
6.046J / 18.410J
As Taught In
- Video lectures
- Selected lecture notes
- Assignments: problem sets with solutions
- Assignments: programming with examples
- Exams and solutions
This course features a complete set of lecture notes and videos. The course textbook was co-written by Prof. Leiserson.
This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.
This course was also taught as part of the Singapore-MIT Alliance (SMA) programme as course number SMA 5503 (Analysis and Design of Algorithms).
Other OCW Versions
OCW has published multiple versions of this subject.
- 6.046J Design and Analysis of Algorithms (Spring 2015)
- 6.046J Design and Analysis of Algorithms (Spring 2012)