| # | Date | Topics Covered | References |
| 0 | Aug 6 | Organizational meeting | |
| Basic Data Structures | |||
| 1 | Aug 11 | Binary Min-Heap | Weiss: 6.1-6.3 |
| 2 | Aug 13 | Binary Min-Heap (contd.) Application: Least k problem |
Weiss: 6.1-6.3 Weiss: 6.4.1 |
| 3 | Aug 18 | Binary Search Tree | Weiss: 4.3 |
| 4 | Aug 20 | Binary Search Tree - Height analysis AVL-Trees |
Weiss: 4.3, 4.4 |
| 5 | Aug 25 | AVL-Trees - Insert using Rotations | Weiss: 4.4 |
| Divide and Conquer Algorithms | |||
| 6 | Aug 27 | QuickSort Linear time Order Statistics |
Weiss: 7.7 , 10.2.3 |
| 7 | Sept 1 | MergeSort Counting Inversions |
KT: 5.1, 5.3 |
| Dynamic Programming | |||
| 8 | Sept 3 | Fibonacci Numbers Matrix chain Multiplication |
Weiss 10.3.1,10.3.2 |
| 9 | Sept 8 | Principles of Dynamic Programming Single source : Bellman-Ford |
KT 6.1, 6.2 Lecture Notes |
| 10 | Sept 10 | Knapsack problem | KT 6.4 |
| 11 | Sept 15 | Weighted Interval Scheduling Overview of greedy algorithms |
KT 6.1 |
| Sept 22 | MIDTERM EXAM | ||
| Lower bounds and NP-comleteness | |||
| 12 | Sept 24 | Comparison based Lower bounds Lower bounds using adversary arguments Lower bounds using reduction |
Michiel Smid lecture notes (Section 1.1)
Jeffe Erickson lecture notes David Mount lecture notes (Lecture 4, Page 17) |
| 13 | Sept 29 | On P, NP and reductions | KT 8.1 |
| 14 | Oct 1 | On P, NP and NP-complete | Avrim Blum's lecture, KT 8.4 |
| 15 | Oct 6 | NP-completeness | Avrim Blum's lecture, KT 8.1-8.4 |
| Advanced Data Structures | |||
| 16 | Oct 8 | Kruskal Algo. for MST Union Find data structure |
KT 4.5 KT 4.6, Weiss 8.3-8.5 |
| 17 | Oct 13 | Orthogonal range Searching: 1D range search, kd-tree | David Mount lecture notes (Lecture 32, Page 155) |
| 18 | Oct 15 | Orthogonal range Searching: kd-tree, Range tree | David Mount lecture notes (Lecture 32 and 33, Page 155, 161) |
| 19 | Oct 20 | Higher dimensional range Searching | David Mount lecture notes (Lecture 33, Pg 161) |
| 20 | Oct 22 | Interval Tree | David Mount lecture notes (Lecture 34, Pg 165) |
| 21 | Oct 27 | Hashing | Weiss 5.1-5.4 |
| MIDTERM EXAM | |||
| Advanced Algorithms | |||
| 22 | Oct 29 | Convex Hull (Divide and Conquer) | Jeff Erickson's Lecture Notes
David Mount lecture notes (Pg 15) |
| 23 | Nov 3 | Convex Hull (Graham scan, Gift wrapping and Chan's Algo) | Jeff Erickson's Lecture Notes |
| 24 | Nov 5 | Closest Pair | KT 5.4 |
| 25 | Nov 10 | Randomized Matrix Multiplication Verification Randomized Approximate Median |
Frievald's Algorithm
De Berg's lecture notes |
| 26 | Nov 12 | Randomized Median Finding Randomized QuickSort |
KT 13.5 Avrim Blum's lecture notes(Sec. 3.4.2) |
| 27 | Nov 17 | Vertex Cover - Greedy Algo, 2-approx algo. Travelling salesman problem |
Lecture Notes on Approximation (Section K3, K5, K6, K7) |
| 28 | Nov 19 | Weighted Vertex Cover - 2-approx algo using LP rounding | KT 11.6 |