1/2/2005: I've archived all of the notes and problem sets and am only leaving up the syllabus for reference. If you're looking for the material, you may be able to find a link to a more recent offering of the class here.
Notice that there is another section of CS140 being offered this semester up at Harvey Mudd. It is taught by a different professor, meets at a different time in a different place, and has discrete mathematics as a prerequisite. However, both sections will cover essentially the same material in the sense that they should both prepare you adequately for courses with CS140 as a prerequisite.
The lectures are on Tuesdays and Thursdays from 1:15-2:30 in Andrew 157.
| Week | Tuesday | Thursday |
|---|---|---|
| 9/1 | intro + background A, B.1-3, C.1-3 in CLRS | basic proof techniques |
| 9/8 | mathematical induction <ex1.pdf> | more induction, algorithm analysis chapter 3 in CLRS |
| 9/15 | more on asymptotics, recurrence relations chapter 4 in CLRS | greedy, divide-and-conquer strategies chapters 2, 16.1-2, 28.2 in CLRS |
| 9/22 | dynamic programming chapter 15 in CLRS | more dynamic programming chapter 15 in CLRS |
| 9/29 | algorithm analysis, randomized algorithms chapter 5 in CLRS | basic data structures chapters 6, 10, 11 in CLRS |
| 10/6 | amortized analysis chapter 17 in CLRS | data structures - balanced search trees chapter 12 in CLRS + splay trees |
| 10/13 | data structures - binomial heaps chapter 19 in CLRS | data structures - fibonacci heaps chapter 20 in CLRS |
| 10/20 | *** no class - fall recess *** | data structures - disjoint sets chapter 21 in CLRS |
| 10/27 | graphs: intro B.4, chapter 22.1 in CLRS | elementary graph algorithms chapter 22.1-4 in CLRS |
| 11/3 | scc, minimum spanning trees chapters 22.5, 23 in CLRS | single source shortest path chapter 24.1, 24.2 in CLRS |
| 11/10 | shortest path algorithms chapter 24.3, 25.2 in CLRS | all pairs shortest path, network flow chapter 25.3, 26.1 in CLRS |
| 11/17 | network flows chapter 26 in CLRS | linear programming chapter 29.1-3 in CLRS |
| 11/24 | linear/integer programming chapter 29.3 in CLRS + extra material | *** no class - Thanksgiving *** |
| 12/1 | introduction to computational complexity chapter 34 in CLRS | NP-Completeness reductions chapter 34 in CLRS |
| 12/8 | approximation algorithms, summary | *** no class - end of semester *** |