MITEECS6.046J
Design and Analysis of Algorithms
The follow-on to 6.006. Advanced techniques: divide and conquer recurrences, randomized algorithms, dynamic programming variants, greedy, network flow, NP-completeness, approximation, distributed algorithms.
