6.006 | Fall 2011 | Undergraduate

Introduction to Algorithms

Readings

Readings refer to chapters and/or sections of the course textbook:

Buy at MIT Press Cormen, Thomas, Charles Leiserson, Ronald Rivest, and Clifford Stein. Introduction to Algorithms. 3rd ed. MIT Press, 2009. ISBN: 9780262033848.

LEC # TOPICS READINGS
Unit 1: Introduction
1 Algorithmic thinking, peak finding 1, 3, D.1
2 Models of computation, Python cost model, document distance 1, 3, Python Cost Model
Unit 2: Sorting and Trees
3 Insertion sort, merge sort 1.2, 2.1–2.3, 4.3–4.6
4 Heaps and heap sort 6.1–6.4
5 Binary search trees, BST sort 10.4, 12.1–12.3, Binary Search Trees
6 AVL trees, AVL sort 13.2, 14
7 Counting sort, radix sort, lower bounds for sorting and searching 8.1–8.3
Unit 3: Hashing
8 Hashing with chaining 11.1–11.3
9 Table doubling, Karp-Rabin 17
10 Open addressing, cryptographic hashing 11.4
  Quiz 1  
Unit 4: Numerics
11 Integer arithmetic, Karatsuba multiplication  
12 Square roots, Newton’s method  
Unit 5: Graphs
13 Breadth-first search (BFS) 22.1–22.2, B.4
14 Depth-first search (DFS), topological sorting 22.3–22.4
Unit 6: Shortest Paths
15 Single-source shortest paths problem 24.0, 24.5
16 Dijkstra 24.3
17 Bellman-Ford 24.1–24.2
18 Speeding up Dijkstra  
  Quiz 2  
Unit 7: Dynamic Programming
19 Memoization, subproblems, guessing, bottom-up; Fibonacci, shortest paths 15.1, 15.3
20 Parent pointers; text justification, perfect-information blackjack 15.3, Problem 15–4, Blackjack rules
21 String subproblems, psuedopolynomial time; parenthesization, edit distance, knapsack 15.1, 15.2, 15.4
22 Two kinds of guessing; piano/guitar fingering, Tetris training, Super Mario Bros.  
Unit 8: Advanced Topics
23 Computational complexity 34.1–34.3
24 Algorithms research topics  

Course Info

Learning Resource Types
Lecture Videos
Recitation Videos
Problem Sets with Solutions
Exams with Solutions
Programming Assignments with Examples
Lecture Notes