6.006 | Spring 2020 | Undergraduate

Introduction to Algorithms

Lecture Notes

Ses # Lectures Recitations
1 Lecture 1: Introduction notes (PDF) Recitation 1 notes (PDF)
2 Lecture 2: Data Structures notes (PDF) Recitation 2 notes (PDF)
3 Lecture 3: Sorting notes (PDF) Recitation 3 notes (PDF)
4 Lecture 4: Hashing notes (PDF) Recitation 4 notes (PDF)
5 Lecture 5: Linear Sorting notes (PDF) Recitation 5 notes (PDF)
6 Lecture 6: Binary Trees, Part 1 notes (PDF) Recitation 6 notes (PDF)
7 Lecture 7: Binary Trees, Part 2: AVL notes (PDF) Recitation 7 notes (PDF)
8 Lecture 8: Binary Heaps notes (PDF) Recitation 8 notes (PDF)
9 Lecture 9: Breadth-First Search notes (PDF) Recitation 9 notes (PDF)
10 Lecture 10: Depth-First Search notes (PDF) Recitation 10 notes (PDF)
11 Lecture 11: Weighted Shortest Paths notes (PDF) Recitation 11 notes (PDF)
12 Lecture 12: Bellman-Ford notes (PDF) Recitation 12 notes (PDF)
13 Lecture 13: Dijkstra’s Algorithm notes (PDF) Recitation 13 notes (PDF)
14 Lecture 14: ASP & Johnson’s Algorithm notes (PDF) Recitation 14 notes (PDF)
15 Lecture 15: Dynamic Programming, Part 1: SRBOT, Fib, DAGs, Bowling notes (PDF) Recitation 15 notes (PDF)
16 Lecture 16: Dynamic Programming, Part 2: LCS, LIS, Coins notes (PDF) Recitation 16 notes (PDF)
17 Lecture 17: Dynamic Programming, Part 3 notes (PDF) Recitation 17 notes (PDF)
18 Lecture 18: Dynamic Programming, Part 4: Rods, Subsetsums, Pseudopolynomial notes (PDF) Recitation 18 notes (PDF)
19 Lecture 19: Complexity notes (PDF) Recitation 19 notes (PDF)
20 Lecture 20: Course Review notes (PDF) No recitation notes
21 No lecture notes No recitation notes

Course Info

Learning Resource Types
Lecture Videos
Exams with Solutions
Lecture Notes
Problem Sets
Problem Set Solutions