These are books I either use regularly, refer to, have used excessively for a course, or have read out of general interest (in the latter case, I list the book because I have enjoyed how it was written).

Pretty standard choices, for the most part.

Computer Vision

  • Computer Vision: A Modern Approach - by David A. Forsyth and Jean Ponce
  • Computer Vision: Algorithms and Applications - by Richard Szeliski

Machine Learning

  • Pattern Recognition and Machine Learning - by Christopher M. Bishop

Natural Language Processing

  • Speech and Language Processing - by Daniel Jurafsky and James H. Martin

Artificial Intelligence

  • Artificial Intelligence: A Modern Approach - by Stuart Russell and Peter Norvig


  • Introduction to Algorithms - by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
  • Algorithm Design - by Jon Kleinberg and Éva Tardos

Theory of Computation

  • Introduction to the Theory of Computation - by Michael Sipser

Scientific Computing

  • Scientific Computing: An Introductory Survey - by Michael T. Heath


  • Introduction to Probability Models - by Sheldon M. Ross
  • Mathematical Statistics with Applications - by Dennis Wackerly, William Mendenhall, and Richard L. Scheaffer
  • Introduction to Time Series and Forecasting - by Peter J. Brockwell and Richard A. Davis
  • A Modern Approach to Regression with R - by Simon Sheather


  • A Computational Perspective on Visual Attention - by John K. Tsotsos
  • Read my amazon review
  • Programming Collective Intelligence - by Toby Segaran