|
Lectures
| |
I. Introduction
| Th, May 19 |
Introduction and Overview |
Ch. 2 (opt) |
|
| F, May 20 |
Asymptotics |
Ch. 3 |
|
| M, May 23 |
Recurrences |
Ch. 4.1-3 |
|
|
| |
II. Sorting
| T, May 24 |
Quicksort |
Ch. 7.1-3 |
|
| W, May 25 |
Heapsort and Lower Bounds |
Ch. 6, 8.1 |
|
| Th, May 26 |
Linear-time Sorting |
Ch. 8.2-4 |
|
|
| |
III. Searching
| F, May 27 |
Binary Search Trees |
Ch. 12.1-3 |
|
| M, May 30 |
Red-black Trees |
|
|
| T, May 31 |
Hash Tables |
Ch. 11.1-4 |
|
| W, June 1 |
Skip Lists |
|
|
|
| |
IV. Paradigms
| Th, June 2 |
Dynamic Programming |
Ch. 15.1-4 |
|
| F, June 3 |
Dynamic Programming & Review |
Ch. 15.1-4 |
|
| M, June 6 |
Greedy Algorithms |
Ch. 16.1-3 |
|
|
| |
| T, June 7 |
Midterm Exam |
3:30 pm |
|
|
| |
V. Advanced Analysis
| W, June 8 |
Amortized Analysis |
Ch. 17 |
|
| Th, June 11 |
Binomial/Fibonacci Heaps |
Ch. 19 |
|
| F, June 10 |
Randomized Algorithms (Quicksort) |
Ch. 5.1-3, 7.4 |
|
| M, June 13 |
Selection |
Ch. 9 |
|
|
| |
VI. Graph Algorithms
| T, June 14 |
Graph Search |
Ch. 22 |
|
| W, June 15 |
Shortest Path |
Ch. 24, 25.2 |
|
| Th, June 16 |
Spanning Trees |
Ch. 23 |
|
| F, June 17 |
Min-cut / Max-flow |
Ch. 26.1-3 |
|
| M, June 20 |
Union-Find |
Ch. 21.1-3 |
|
|
| |
VII. String Algorithms
| T, June 21 |
String Matching |
Ch. 32.1-3 |
|
| W, June 22 |
String Searching |
|
|
|
| |
VIII. Computational Complexity
| Th, June 23 |
Tractable vs. Intractable |
Ch. 34.1-2 |
|
| F, June 24 |
NP-Complete Problems |
Ch. 34.3-5 |
|
| M, June 27 |
Approximation Algorithms |
Ch. 35.1-2 |
|
|
| |
| Th, June 30 |
Final Exam |
7:00 pm |
|
( *
Notes by Lars Arge )
(** Notes by Herbert Edelsbrunner )
|
Optional Math Review Sessions
Despite having completed the prerequisites, some students may feel that their math background isn't strong enough, or they may simply want a refresher. To accomodate this, I will be holding two optional math review sessions during the course.
Food will be provided, so I will be taking headcounts before each session.
|