Useful links, animations, etc:
Other undergraduate algorithm classes on the web:
Schedule
Introduction and mathematical review. Reading: textbook ch 1 |
|
Asymptotic notation. Sorting (bubblesort, selection sort). Reading: textbook 2.4.2 | Prologue |
Insertion sort, mergesort. Reading: textbook 4.1 |
Analyzing mergesort. Recurrence relations. Example |
|
Quicksort. Reading: textbook 4.3 |
Priority queues: Heaps. Heapsort. Reading: textbook 2.4 |
Sorting lower bound. Linear time sorting (bucket sort, radix sort). Reading: textbook 4.4,4.5,4.6 |
Selection. Reading: textbook 4.7 |
Review and problems. |
EXAM 1. |
Divide-and-conquer (Strassen's algorithm, (large) integer multiplication). Reading: textbook 5.2 |
|
Dynamic programming (matrix multiplication, 0-1 knapsack) Reading: textbook 5.1 |
Dynamic programming (job scheduling) |
Greedy algorithms (activity selection, fractional knapsack). Reading: textbook 5.3 |
Graph basics. Reading: textbook 6.2, 6.3 |
Problem session. |
EXAM 2. |
Graph traversals (BFS, DFS) Reading: textbook 6.2, 6.3 |
Digraphs. Strong components. Transitive closure. Topological order. Reading: textbook 6.4 |
Shortest paths (SSSP). Reading: textbook 7.1, 7.2 |
MST (Kruskal, Prim) Reading: textbook 7.3 |
MST |
|
NP-Completeness. Reading: textbook 13 |
NP-Completeness. |
Round-up. |
The third exam will be take-home, due on December 16th at 2pm.