Combinatorics is the art of counting: how many ways are there to do something? For example, how many different ways are there to make change for $1.00, i.e., to break up a dollar into coins? From this humble-sounding beginning, combinatorics expands in a huge number of directions. It turns out that a number of powerful principles underlie much of the field, and gather apparently disparate problems into a unified theory. This theory applies to many different sorts of mathematical objects. Furthermore, it has connections with many other fields, ranging from probability to computer science.
In this course, we will study several different sorts of combinatorics, including enumerative combinatorics and graph theory. The focus will be on solving challenging problems, since one of the beauties of combinatorics is that frequently, once one has absorbed a certain principle, problems that previously seemed impossible suddenly become quite doable.