There are no textbooks covering a majority portion of the material we will be studying in this class. Roughly 20% of the material is covered in the lecture notes from another version of this course, by Prof. Michel Goemans.

The following papers are related to the second lecture:

Cormen, Leiserson, Rivest, and Stein. *Introduction to Algorithms*. 2nd ed. Cambridge, MA: MIT Press, 2001. ISBN: 0262032937.

Ahuja, Magnanti, and Orlin. *Network Flows*. Upper Saddle River, NJ: Prentice Hall, 1993. ISBN: 013617549X.

Motwani and Raghavan. *Randomized Algorithms*. Cambridge, UK: Cambridge University Press, 1995. ISBN: 0521474655.

Gusfield, Dan. *Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology*. Cambridge, UK: Cambridge University Press, 1997. ISBN: 0521585198.

Borodin, Allan, and Ran El-Yaniv. *Online Computation and Competitive Analysis*. Cambridge, UK: Cambridge University Press, 1998. ISBN: 0521563925.

Tarjan, Robert. *Data Structures and Network Algorithms*. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1983. ISBN: 0898711878. A classic - no longer up to date, but outstanding writing.

Berg, Mark de, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf. *Computational Geometry: Algorithms and Applications*. New York, NY: Springer-Verlag, 2000. ISBN: 3540656200.

Hochbaum, Dorit, ed. *Approximation Algorithms for NP-Hard Problems*. Boston, MA: PWS Publishing Company, 1997. ISBN: 0534949681.