Calendar · Lecture Notes
MIT OpenCourseWare
Design and Analysis of Algorithms
Art: Palmer, Edward, 1803-1872, Figures 113-123. Plate Electrical Machines, 1840 · Public domain
- Instructors
- Prof. Dana Moshkovitz, Prof. Bruce Tidor
- Term
- Spring 2012
- Level
- Undergraduate
- What's inside
- 9 problem sets · 7 exams · 15 solutions · 2 lecture notes · 1 reading · 30 other files · 7 web pages
- Materials open
- MIT OCW
Other versions of this course
- 6.046J · Spring 2015 · Study here
- 6.046J · Spring 2012 · Study here (this version)
About this course
Source: MIT OpenCourseWare 6.046J Design and Analysis of Algorithms, Spring 2012, Prof. Dana Moshkovitz, Prof. Bruce Tidor — original course page on ocw.mit.edu ↗. License: CC BY-NC-SA 4.0. Study order: MIT's own listing order, section by section. Taken from MIT's published course files, downloaded from ocw.mit.edu on September 23, 2026. How RedLectern is built.
Materials are grouped the way MIT organized them. A verified, course-wide order has not been established here.
Has MIT solutions
Before you start
Prerequisites are not listed here. Check MIT's own syllabus for this course.
How this course was organized
What's here, and what isn't
- MIT's own materials here did not support a verified, course-wide order, so they are grouped by section instead.
Not included here
8 items from the source could not be safely included:
- MIT's page format for this item wasn't recognized clearly enough to place it safely. (6 items)
- Referenced in a table, but without MIT's own verified order, so it isn't used to claim a sequence. (2 items)
Materials by section
Grouped by section, as MIT organized them. Not sequenced or ordered.
Lecture Notes
24 files
- 6.046J Complete Lecture Notes Download
- 6.046J Lecture 1: Introduction, median finding Download
- 6.046J Lecture 2: Median finding, interval scheduling Download
- 6.046J Lecture 3: Minimum spanning trees I Download
- 6.046J Lecture 4: Minimum spanning trees II Download
- 6.046J Lecture 5: Fast Fourier transform Download
- 6.046J Lecture 6: All-pairs shortest paths I Download
- 6.046J Lecture 7: All-pairs shortest paths II Download
- 6.046J Lecture 8: Randomized algorithms I Download
- 6.046J Lecture 9: Randomized algorithms II Download
- 6.046J Lecture 10: Hashing and amortization Download
- 6.046J Lecture 11: Amortized analysis Download
- 6.046J Lecture 12: Competitive analysis Download
- 6.046J Lecture 13: Network flow Download
- 6.046J Lecture 14: Interlude: problem solving Download
- 6.046J Lecture 15: van Emde Boas data structure Download
- 6.046J Lecture 16: Disjoint-set data structures Download
- 6.046J Lecture 17: Complexity and NP-completeness Download
- 6.046J Lecture 18: Polynomial-time approximations Download
- 6.046J Lecture 19: Compression and Huffman coding Download
- 6.046J Lecture 20: Sublinear-time algorithms Download
- 6.046J Lecture 21: Clustering Download
- 6.046J Lecture 22: Derandomization Download
- 6.046J Lecture 23: Computational geometry Download
Recitations
- 6.046J Recitation 8: Algorithm design tools Download
- 6.046J Recitation 9: van Emde Boas Download
- 6.046J Recitation 10: NP-hardness Download
- 6.046J Recitation 12: Sublinear algorithms, clustering Download
Assignments
19 files
- LaTeX template for problem sets Download
- 6.046J Design and Analysis of Algorithms, Problem Set 1 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 1 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 2 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 2 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 3 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 3 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 4 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 4 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 5 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 5 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 6 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 6 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 7 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 7 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 8 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 8 Solutions Download
- 6.046J Design and Analysis of Algorithms, Problem Set 9 Download
- 6.046J Design and Analysis of Algorithms, Problem Set 9 Solutions Download
Exams
15 files
- LaTeX template Download
- 6.046J Final Exam Download
- 6.046J Practice Final Exam Download
- 6.046J Practice Problems: Advanced Topics Download
- 6.046J Spring 2011 Practice Final Exam Download
- 6.046J Spring 2011 Practice Final Exam Solutions Download
- 6.046J Spring 2012 Final Exam Solutions Download
- 6.046J Spring 2012 Practice Final Exam Solutions Download
- 6.046J Spring 2012 Practice Quiz 2 Download
- 6.046J Spring 2012 Practice Quiz 2 Solutions Download
- 6.046J Spring 2012 Quiz 1 Download
- 6.046J Spring 2012 Quiz 1 Solutions Download
- 6.046J Spring 2012 Quiz 2 Download
- 6.046J Spring 2012 Quiz 2 Instructions Download
- 6.046J Spring 2012 Quiz 2 Solutions Download
Course outline
Calendar · Lecture Notes
Lecture 2: Median finding, interval scheduling
Calendar · Lecture Notes
Lecture 3: Greedy algorithms, minimum spanning trees: Kruskal’s
Calendar · Lecture Notes
Lecture 4: Minimum spanning trees: Prim’s
Calendar · Lecture Notes
Lecture 5: Fast Fourier transform
Calendar · Lecture Notes
Lecture 6: Dynamic programming, all pairs shortest paths: Floyd-Warshall
Calendar · Lecture Notes
Lecture 7: All-pairs shortest paths II: Johnson’s
Calendar · Lecture Notes
Lecture 8: Randomized algorithms
Calendar · Lecture Notes
Lecture 9: Randomized algorithms, high probability bounds
Calendar · Lecture Notes
Lecture 10: Hashing
Calendar · Lecture Notes
Lecture 11: Amortized analysis
Calendar · Lecture Notes
Lecture 12: Competitive analysis
Calendar · Lecture Notes
Lecture 13: Network flows
Calendar · Lecture Notes
Lecture 14: Preparation for take-home exam
Calendar · Lecture Notes
Lecture 15: van Emde Boas data structure
Calendar · Lecture Notes
Lecture 16: Advanced data structures: disjoint sets
Calendar · Lecture Notes
Lecture 17: P vs. NP
Calendar · Lecture Notes
Lecture 18: Approximation algorithms
Calendar · Lecture Notes
Lecture 19: Compression
Calendar · Lecture Notes
Lecture 20: Sub-linear time algorithms
Calendar · Lecture Notes
Lecture 21: Clustering
Calendar · Lecture Notes
Lecture 22: Derandomization
Calendar · Lecture Notes
Lecture 23: Computational geometry
MIT OpenCourseWare, Prof. Dana Moshkovitz, Prof. Bruce Tidor, 6.046J Design and Analysis of Algorithms, Spring 2012.
License: CC BY-NC-SA 4.0 · Edition: Spring 2012 · Open the original course on OCW ↗
Organized by RedLectern, independent of MIT and not endorsed by MIT.
Per-resource rights are recorded on each resource; All-Rights-Reserved items are link-only, never mirrored.
