MIT 6.046J: Design and Analysis of Algorithms

The advanced algorithms course at MIT, building on 6.006 with more sophisticated techniques and proofs.

About This Course

MIT 6.046J is the natural continuation of 6.006, diving deeper into algorithm design paradigms and analysis techniques. The course covers advanced topics that are essential for understanding modern algorithm research and tackling harder computational problems.

What You Will Learn

  • Divide and Conquer: Advanced applications, convex hull, median finding
  • Randomized Algorithms: Skip lists, hashing, randomized analysis
  • Amortized Analysis: Aggregate, accounting, and potential methods
  • Network Flow: Ford-Fulkerson, max-flow min-cut, bipartite matching
  • Linear Programming: Simplex, duality, LP relaxations
  • Computational Geometry: Convex hull, line segment intersection
  • Approximation Algorithms: Vertex cover, TSP, set cover
  • NP-Hardness: Reductions and intractability

Prerequisites

MIT 6.006 (Introduction to Algorithms) or equivalent. Strong mathematical maturity.

Course content belongs to MIT OpenCourseWare. Licensed under Creative Commons BY-NC-SA.