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.