I will discuss a basic technique of discrete mathematics: the use of generating functions in enumeration problems. After illustrating the method with some simple examples, I will show how to apply the theory of generating functions to a problem about integer triangles and a problem about Rook paths, in the latter case proving a conjectured formula from The On-Line Encyclopedia of Integer Sequences. Along the way, I will touch on related topics in enumeration, such as lattice paths, $D$-finite sequences, and asymptotics. Here are a couple of questions to ponder: (a) How many triangles with integer side lengths have perimeter 10^{100}? (b) How many paths can a chess Rook take in moving from the lower-left corner to the upper-right corner of a chess board? (Assume that the Rook moves right or up at each step.)