Lecture |
Topic |
Important Events |
Reading |
Jan 25 |
Chapter 1: Introduction [slides, slides-pf] |
|
pp. 1--39 |
|
- Course introduction & motivation |
|
|
|
- Algorithms & Problems |
|
|
|
- Fundamentals |
|
|
|
- Problem Types |
|
|
|
- Data Structures |
|
|
|
- Correctness |
|
notes |
Feb 1 |
Chapter 2: Analysis Framework [slides, slides-pf] |
|
pp. 41--96 |
|
- Analysis Framework |
|
|
|
- Asymptotics & Efficiency |
|
|
|
- Nonrecursive Algorithms |
|
|
|
- Recursive Algorithms & Recurrence Relations |
|
notes |
|
- Empiricism & Visualization |
|
|
Feb 8 |
Chapter 3: Brute Force |
Guest lecturer |
pp. 97--120 |
|
- SelectionSort and BubbleSort |
|
|
|
- Sequential Search and BF String Matching |
|
|
|
- Closest-Pair and Convex-Hull |
|
|
|
- Exhaustive Search |
|
|
Feb 15 |
Chapter 4: Divide & Conquer [slides] |
|
pp. 121--153 |
|
- Introduction to D&C |
|
|
|
- The MergeSort algorithm |
|
|
|
- The QuickSort algorithm |
|
|
|
- The BinarySearch algorithm |
|
|
|
- Binary tree traversals, etc. |
|
|
|
- Large integer and matrix multiplication |
|
|
|
- Closest-Pair and Convex-Hull |
|
|
Feb 22 |
Chapter 5: Decrease & Conquer [slides] |
Review for Exam I |
pp. 153--175 |
|
- The InsertionSort algorithm |
|
|
|
- DFS & BFS |
|
|
|
- Reviewing recurrences |
|
notes |
Mar 1 |
|
Exam 1 |
|
Mar 8 |
Chapter 5-part2, 6-part1: {Decrease,Transform} & Conquer [slides] |
Project I due |
pp. 170--207 |
|
- Topological Sorting |
|
|
|
- Generating Combinatorial Objects |
|
|
|
- Decrease-by-a-Constant-Factor Algorithms |
|
|
|
- Variable-Size-Decrase Algorithms |
|
|
|
- Presorting |
|
|
|
- Gaussian Elimination |
|
|
Mar 15 |
SPRING BREAK |
|
|
Mar 22 |
Chapter 6-part2: Transform & Conquer [slides] |
|
pp. 209--243 |
|
- Balanced Trees |
|
|
|
- Heaps & HeapSort |
|
|
|
- Horner's Rule & Binary Exponentiation |
|
|
|
- Problem Reduction |
|
|
Mar 29 |
Chapter 7: Space & Time Tradeoffs [slides] |
|
pp. 245--274 |
|
- Count Sorts |
|
|
|
- String Matching |
|
|
|
- Hashing |
|
|
|
- B-Trees |
|
|
Apr 5 |
Chapter 8: Dynamic Programming |
Review for Exam II, Project 2 due |
pp. 275--301 + lecture |
|
- Fibonacci |
|
|
|
- Chain Multiplication |
|
|
|
- Binomial Coefficient |
|
|
|
- Warshall's & Floyd's Algorithms |
|
|
|
- Optimal Binary Search Trees |
|
|
|
- Knapsack Problem |
|
|
Apr 12 |
|
Exam II |
|
Apr 19 |
Chapter 9: Greedy Technique |
|
pp. 303--330 |
|
- Prim's Algorithm |
|
|
|
- Kruskal's Algorithm |
|
|
|
- Dijkstra's Algorithm |
|
|
|
- Huffman Trees |
|
|
Apr 26 |
Chapters 10: Limitations of Algorithm Power |
|
pp. 331--367 |
|
- Lower bounds on problems |
|
|
|
- Decision Trees |
|
|
|
- P, NP, and NP-Complete problems |
|
|
|
- Numerical problems |
|
|
May 3 |
Chapters 11: Coping with Limitations of Algorithm Power |
Review for Exam III, Project III due |
pp. 367--397 |
|
- Backtracking |
|
|
|
- Branch-and-bound |
|
|
|
- Approximation Algorithms |
|
|
May 10 (7:20p) |
|
Final Exam |
|