How we did it:
Ronald L. Graham, Donald Ervin Knuth, Oren Patashnik
This book, updated and improved, introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills--the skills needed to solve complex problems, to evaluate horrendous-looking sums, to solve complex recurrence relations, and to discover subtle patterns in data. It is an indispensable text and reference, not only for computer scientists but for all technical professionals in virtually every discipline.