Generating functions are a basic counting technique in combinatorics with many applications to different fields, including geometry, number theory, and representation theory. This course will be a fast-paced introduction to the subject with an emphasis on examples. Topics will include ordinary and exponential generating functions, rational generating functions, algebraic generating functions, combinatorics of gaussian integrals and matrix models, and applications to counting graphs, hypergraphs, and maps on surfaces.