Analysis of Algorithms

This course teaches a calculus that enables precise quantitative predictions of large combinatorial structures. In addition, this course covers generating functions and real asymptotics and then introduces the symbolic method in the context of applications in the analysis of algorithms and basic structures such as permutations, trees, strings, words, and mappings.

About The Course

Analysis of Algorithms aims to enable precise quantitative predictions of the properties of large combinatorial structures. The theory has emerged over recent decades as essential both for the scientific analysis of algorithms in computer science and for the study of scientific models in many other disciplines, including probability theory, statistical physics, computational biology and information theory. This course covers recurrence relations, generating functions, asymptotics, and fundamental structures such as trees, permutations, strings, tries, words, and mappings, in the context of applications to the analysis of algorithms.

Frequently Asked Questions

Does Princeton award credentials or reports regarding my work in this course?

No certificates, statements of accomplishment, or other credentials will be awarded in connection with this course.

Recommended Background

Math through calculus and basic familiarity with programming in a modern language such as Java. Knowledge of basic algorithms and data structures from  Algorithms, Part I is helpful but not required. The video From Analysis of Algorithms to Analytic Combinatorics: A Journey with Philippe Flajolet, is an optional (since it contains some advanced material that is beyond the scope of this course) overview that gives some historical perspective and introduces this course and Analytic Combinatorics.