This monograph collects some fundamental mathematical techniques that are required for the analysis of algorithms. It builds on the fundamentals of combinatorial analysis and complex variable theory to present many of the major paradigms used in the precise analysis of algorithms, emphasizing the more difficult notions. The authors cover recurrence relations, operator methods, and asymptotic analysis in a format that is concise enough for easy reference yet detailed enough for those with little background with the material. The book contains a wealth of highly original, instructive problems and solutions taken from actual examinations given at Stanford in various computer science courses.