This book introduces readers to the language of generating functions, which nowadays, is the main language of enumerative combinatorics. The book starts with definitions, simple properties, and numerous examples of generating functions. It then discusses topics such as formal grammars, generating functions in several variables, partitions and decompositions, and the exclusion-inclusion principle. In the final chapter, the author describes applications to enumeration of trees, plane graphs, and graphs embedded in two-dimensional surfaces.
Throughout the book, the author motivates readers by giving interesting examples rather than general theories. It contains numerous exercises to help students master the material.