N.B. This list is personal and volatile.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Introduction to Algorithms, 3rd edition.
- S. Dasgupta, C. H. Papadimitriou and U. V. Vazirani. Algorithms.
Theory of computation:
- Michael Sipser. Introduction to the Theory of Computation, 3rd edition.
- Neil D. Jones. Computability and Complexity: From a Programming Perspective.
- Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography, 2nd edition.
- Alfred Menezes and Scott Vanstone. Guide to Elliptic Curve Cryptography.
- John Talbot and Dominic Welsh. Complexity and Cryptography: An Introduction.
- Peter Norvig and Stuart J. Russell. Artificial Intelligence: A Modern Approach, 3rd edition.
- David Forsyth and Jean Ponce. Computer Vision: A Modern Approach, 2nd edition.
- Yaser S. Abu-Mostafa, Malik Magdon-Ismail and Hsuan-Tien Lin. Learning from Data: A Short Course.
Basic discrete mathematics:
- Eric Lehman, F. Thomson Leighton and Albert R. Meyer. Mathematics for Computer Science.
- Kenneth H. Rosen. Discrete Mathematics and Its Applications, 7th edition.
- Paul Halmos. Naive Set Theory.
Basic probability and statistics:
- Michael Mitzenmacher and Eli Upfal. Probability and Computing: Randomized Algorithms and Probabilistic Analysis.
- Michael Baron. Probability and Statistics for Computer Scientists, 2nd edition.
Introduction to mathematical logic:
- Herbert B. Enderton. A Mathematical Introduction to Logic, 2nd edition.
- Raymond M. Smullyan. First-Order Logic.
- Raymond M. Smullyan and Melvin Fitting. Set Theory and the Continuum Problem.
Logic and programming:
- Paul Taylor. Practical Foundations of Mathematics.
- Michael Huth. Logic in Computer Science: Modelling and Reasoning about Systems.
- Bertrand Russell. Introduction to Mathematical Philosophy.
- Douglas Hofstadter. Gödel, Escher, Bach: an Eternal Golden Braid.
- G. H. Hardy. A Mathematician’s Apology.