# Additional Useful Resources

For a compiled and well-formatted version of the lecture notes for this course, see Keven Qiu’s notes.

**Books:**

There is no required textbook for this course, but the following books are suggested if you want to deepen your knowledge on the subject.

- [CLRS] Cormen, Leiserson, Rivest, and Stein,
*Introduction to Algorithms*(3rd ed.), MIT Press, 2009 (QA76.6 .C662 2009). You can also use the 2nd edition, which is**available electronically**through the library. - [MR] Motwani and Raghavan,
*Randomized Algorithms*, Cambridge University Press, 1995 (QA274.M68) - [KT] Kleinberg and Tardos,
*Algorithm Design*(QA76.9.A43K54 2006) - [MU] M. Mitzenmacher and E. Upfal,
*Probability and Computing*, Cambridge University Press, 2005 (QA274 .M574 2005) - [V] V. Vazirani,
*Approximation Algorithms*, Springer-Verlag, 2001 (QA76.9.A43 V39) - [WS] D. Williamson and D. Shmoys,
*Design of Approximation Algorithms* - [H] D.S. Hochbaum, ed.,
*Approximation Algorithms For NP-Hard Problems*, PWS, 1997 (T57.7.A68) - [BE] Borodin and El-Yaniv,
*Online Computation and Competitive Analysis*, Cambridge University Press, 1998 (QA76.9.A43 B67) - [BPT] Blekherman, Parrilo, Thomas, Semidefinite Optimization and Convex Algebraic Geometry
- [GLS] Grotschel, Lovasz, Schrijver,
*Geometric Algorithms and Combinatorial Optimization* - [S] Schrijver,
*Theory of Linear and Integer Programming* - [S1] Schrijver,
*Combinatorial Optimization A* - [S1] Schrijver,
*Combinatorial Optimization B* - [KV] Korte, Vygen,
*Combinatorial Optimization: Theory and Algorithms* - [BV] Boyd, Vandenberghe
*Convex Optimization*

**Other web resources:**

- Jeff Erickson’s algorithms notes (with many exercises)
- Erik Demaine’s Design and Analysis of Algorithms course
- David Eppstein’s Data Structures course (with wikipedia course notes)
- MIT’s 6.006 course with video lectures
- Erik Demaine’s Advanced Data Structures course (with video lectures)
- Lap Chi Lau’s version of CS 466
- Anna Lubiw’s version of CS 466
- My previous version of CS 466
- Avrim Blum and Daniel Sleator’s Graduate Algorithms
- Offerings from Harvard
- Jelani’s Advanced Algorithms
- MIT 6.046 Fall 2013, Spring 2015, Spring 2013, Fall 2011, Fall 2010
- Ankur Moitra’s Advanced Algorithms
- Ankur Moitra’s book on Algorithmic Aspects of Machine Learning
- Highlights in Algorithms Workshop
- Computational Geometry Lecture Notes
- Anna Lubiw’s Computational Geometry Course
- Princeton’s Advanced Algorithms Fall 2013 Course
- List of courses for algorithms in big data
- Algorithms in the “real world” notes
- Yaron Singer’s Advanced Optimization
- Luca Trevisan’s Optimization and Algorithmic Paradigms
- Anupam Gupta and Ryan O’Donnell’s Advanced Approximation Algorithms
- Anumpam Gupta and Ryan O’Donnell’s Linear Programming and Semidefinite Programming

**Further reading:**

- Avi Wigderson’s new book, Math and Computation
- Sebastien Bubeck’s book, Convex Optimization: Algorithms and Complexity
- Survey on Multiplicative Weights Update

**Further Links on Course Topics**

**Interview Preparation**

The following resource, while not useful for the course, could be useful for technical interviews you may have:

- Adnan Aziz and Amit Prakash,
*Algorithms for Interviews*, 2010.

Nice small collection of problems and solutions