6.1220: Design and Analysis of Algorithms

Algorithmic Design Paradigms: Greedy, Divide-and-Conquer, Dynamic Programming, Randomized/Approximation/Sublinear/Sketching/Streaming/Online Algorithms

Beyond Worst-Case Analysis: Probabilistic Analysis (e.g. Monte Carlo and Las Vegas Algorithms), Amortized Analysis, Competitive Analysis, Dynamic/Static Data Structures (e.g. Hashing)

Cool Topics: Linear Programming, Game Theory (e.g. Nash Equilibria), Multiplicative Weights, Gradient Descent, Markov Chains, Fast Fourier Transform, NP-Completeness

Materials on MIT Canvas (see also MIT’s official course description)