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.
Dana Moshkovitz, and Bruce Tidor. 6.046J Design and Analysis of Algorithms, Spring 2012. (Massachusetts Institute of Technology: MIT OpenCourseWare), http://ocw.mit.edu (Accessed). License: Creative Commons BY-NC-SA