I do have some (well, a little) Theoretical-CS background. I thought I was learning math for computer science in class—I took notes, solved problems, or may have even nodded sagely once or twice. But only after when I start reading the following books did I realize… ah, this is what they were trying to teach us.
Whether you’re into algorithms, theory of computation, or occasionally need to find a quick recap or intermediate result to bypass some calculations yourself, the following are the textbooks that our professors quietly (or loudly) revere—slightly biased, but just to get started.
There we go.
Let’s start with a sassy Knuthian production—though not that famous algorithm book (yes, Knuth wrote that too). This one is about clever tricks, and the kind of math that makes algorithm design possible. Read it before the algorithm design class and you will kill.
Concrete Mathematics: A Foundation for Computer Science
Ronald L. Graham, Donald E. Knuth, Oren Patashnik Addison-Wesley, 1994 (2nd Edition)
Ah, and you’ll never get away with graphs. So it’s never too late to catch up:
Graph Theory with Applications
J. A. Bondy and U. S. R. Murty. Elsevier, 1976.
One more MIT’s gift to the world. A classy discrete math starter:
Mathematics for Computer Science
Eric Lehman, F. Thomson Leighton, Albert R. Meyer. MIT OpenCourseWare, 2005
And finally, my personal favourite algorithm books—slightly long, but a beautifully structured guide to designing algorithms that actually work—it has a lot real-world motivation and elegant solutions.
Algorithm Design
Jon Kleinberg and Éva Tardos. 2005