Fundamental Algorithms, G22.1170
Fall 2001


This course emphasizes the basic algorithmic techniques for efficient algorithms, and the analytical tools for understanding them. There will be no programming. The text book of Cormen et al [CLRS] will be followed fairly closely. We will distribute lecture notes when we provide alternative material.

The following is a rough schedule. Throughout the semester, we will specify the relevant sections of the individual chapters to be read.

We strongly suggest reading ahead: this kind of reading does not require full understanding, but gives you a general orientation. Just read as far as you can, starting from the introduction (even 10 minutes of reading just before class would be helpful).
Week TOPIC Chapter, Comments
0 Background Read at leisure Chap 1,2.
1 Recurrences Chap 3,4. Also Appendix A.
2 Probabilistic Analysis Chap 5. Appendix C.
3 Quick Sort and Medians Chap 7,9.
4 Hashing Chap 11.
5 Binary Search Trees (Randomized, Balanced) Chap 12, 13.
6 Dynamic Programming Chap 15.
7 Greedy Methods Chap 16.
9 Amortization Chap 17.
10 Advanced Data Structures A selection from Chaps 18-21.
11 Basic Graph Algorithms Chap 22, 23.
12 Shortest Paths Chap 24.
13 NP Completeness Chap 34, 35.