Generating functions are a way of encoding an infinite sequence of numbers by treating them as the coefficients of a formal power series. They can be expressed in closed form and are used to solve linear recurrence problems.

This course provides a comprehensive introduction to Discrete Mathematics, emphasizing the application of these concepts in Computer Science. Topics include counting, recurrence relations, combinatorial games, Polya theory, and more.