LEC #  TOPICS  

Unit 1: Introduction  
1  Algorithmic thinking, peak finding (PDF  1.9MB)  
2 
Models of computation, document distance


Unit 2: Sorting and Trees  
3  Insertion sort, merge sort (PDF) (Courtesy of Charles Leiserson, Piotr Indyk, Constantinos Daskalakis, and Srini Devadas. Used with permission.)  
4  Heaps and heap sort (PDF) (Courtesy of Charles Leiserson, Piotr Indyk, Constantinos Daskalakis, and Srini Devadas. Used with permission.)  
5  Binary search trees, BST sort (PDF  1.2MB)  
6 
AVL trees, AVL sort


7 
Counting sort, radix sort, lower bounds for sorting 

Unit 3: Hashing  
8 
Hashing with chaining 

9 
Table doubling, KarpRabin 

10  Open addressing, cryptographic hashing (PDF)  
Unit 4: Numerics  
11  Integer arithmetic, Karatsuba multiplication (PDF)  
12  Square roots, Newton’s method (PDF)  
Unit 5: Graphs  
13 
Breadthfirst search (BFS) 

14 
Depthfirst search (DFS), topological sorting 

Unit 6: Shortest Paths  
15  Singlesource shortest paths problem (PDF)  
16  Dijkstra (PDF)  
17  BellmanFord (PDF  1.2MB)  
18  Speeding up Dijkstra (PDF  1.1MB)  
Unit 7: Dynamic Programming  
19 
Dynamic programming I: Fibonacci, shortest paths 

20 
Dynamic programming II: text justification, blackjack 

21 
Dynamic programming III: parenthesization, edit distance, knapsack 

22 
Dynamic programming IV: guitar fingering, Tetris, Super Mario Bros. 

Unit 8: Advanced Topics  
23 
Computational complexity 

24 
Topics in algorithms research 
Lecture Notes
Course Info
Instructors
Departments
As Taught In
Fall
2011
Level
Learning Resource Types
theaters
Lecture Videos
theaters
Recitation Videos
assignment_turned_in
Problem Sets with Solutions
grading
Exams with Solutions
assignment_turned_in
Programming Assignments with Examples
notes
Lecture Notes