Algorithm Design
Jon Kleinberg & Éva Tardos
Clean Code: A Handbook of Agile Software Craftsmanship
Robert C. Martin
How to Prove It: A Structured Approach
Daniel J. Velleman
Learning Theory From First Principles
Francis Bach
Computers and Intractability: A Guide to the Theory of NP-completeness
Michael R. Garey & David S. Johnson