Useful links, animations, etc:
Other undergraduate algorithm classes on the web:
Tentative schedule
1/21, 1/23, 1/28 |
Introduction and mathematical review. Asymptotic notation. Sorting (bubble sort, selection sort, insertion sort, mergesort).
Reading: CLRS ch. 1, 2.1, 2.2, 3 | Prologue Exercises: ex-growth | ex-summations |
1/30, 2/4 | Recurrence relations.
Reading: CLRS ch. 4 Exercises: ex-recurrences-1 | ex-recurrences-2 |
2/6 | Quicksort.
Reading: CLRS chap 7 Exercises: ex-quicksort |
2/11 | Priority queues: binary heap. Heapsort.
Reading:CLRS chap 6 Exercises: ex-heapsort |
2/13 | Sorting lower bound. Linear time sorting (bucket sort, radix sort).
Reading: CLRS chap 8 Exercises: |
2/18 | Selection.
Reading: CLRS chap 9 Exercises: ex-selection |
2/20, 2/25 | Problems. EXAM 1.
Reading: Exercises: |
2/27 | Divide-and-conquer (Strassen's algorithm, large integer multiplication).
Reading: CLRS chap 4 Exercises: ex-divideandconquer |
3/4, 3/6 | Dynamic programming (matrix chain multiplication, 0-1 knapsack, job scheduling).
Reading: CLRS chap 15 Exercises: |
3/25 | Greedy algorithms (activity selection, fractional knapsack).
Reading: CLRS chap 16 Exercises: |
3/27 | Problems. EXAM 2.
Reading: divide-and-conquer, dynamic programming and greedy techniques. Exercises: |
4/1, 4/3 | Graph basics. Traversals.
Reading: CLRS chap 22 Slides: Graphs-basics.pdf Exercises: |
4/8, 4/10 | Digraphs. Strongly connected components. Transitive closure. Topological ordering.
Reading: CLRS chap 22 Slides: Graphs-basics.pdf Exercises: |
4/15, 4/17 | Shortest paths (SSSP). Dijkstra's algorithm and Bellman-Ford's algorithm.
Reading: CLRS chap 24 Slides: Graphs-sp.pdf Exercises: |
4/22 | Minimum spanning tree (MST).
Reading: CLRS chap 23 Slides: Graphs-mst.pdf Exercises: |
4/24 | String algorithms.
Reading: CLRS chap 32 Exercises: |
4/29, 5/1 | NP-completeness.
Reading: CLRS chap 33 Exercises: |
5/6 | Round-up.
Reading: Exercises: |
5/13 | EXAM 3.
Reading: Graphs and NPC. |
The third exam will be take-home, due on May 13th at 12pm.