Prof. Dana Moshkovitz
Prof. Bruce Tidor
6.046J / 18.410J
Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; greedy algorithms; amortized analysis; graph algorithms; and shortest paths. Advanced topics may include network flow, computational geometry, number-theoretic algorithms, polynomial and matrix calculations, caching, and parallel computing.
OCW has published multiple versions of this subject.
Moshkovitz, Dana, and Bruce Tidor. 6.046J Design and Analysis of Algorithms, Spring 2012. (MIT OpenCourseWare: Massachusetts Institute of Technology), http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012 (Accessed). License: Creative Commons BY-NC-SA