An Invitation to Enumeration #
This website contains the notes An Invitation to Enumeration by Stephen Melczer, written for CO 330: Combinatorial Enumeration at the University of Waterloo.
These notes provide an introduction to enumerative combinatorics. They are suitable for undergraduate students in combinatorics, mathematics, and computer science – ideally (but not strictly necessarily) those who have already taken a first course in combinatorics.
If you read these notes on a phone or other small screen, I highly recommend tilting your device sideways so the math formulas don’t run off the page and require horizontal scrolling.
Computer Algebra Software #
Effective computation forms an integral part of modern combinatorics. These notes mainly use the opensource Sage computer algebra system, which is available for download on its website or through the online browserbased CoCalc service. Knowledge of Sage is not required to follow these notes, but being able to play around with the code snippets provided can greatly increase understanding.
An introduction to Sage for beginners can be viewed as a static HTML file here or downloaded as a Jupyter notebook here. See also the Sage Tutorial and the excellent textbook Computational Mathematics with SageMath by Zimmermann and 15 coauthors.
Occasionally, these notes might reference software packages for other computer algebra systems, like Maple, MAGMA, and Mathematica. These computer algebra systems are not open source, but many educational institutions provide free access to some or all of them.
Licenses and Citation #
This website was created with Hugo, using a modification of the Hugo Book theme (license) with Bootstrap (license) and math rendering through KaTeX (license).
Please use the citation An Invitation to Enumeration (enumeration.ca) by Stephen Melczer, 2022
to refer to these notes.
Notation #
These notes use notation commonly found in other mathematics books, including

$\mathbb{N}$ for the natural numbers $0,1,2,\dots$ including zero.

$\mathbb{Z}$ for the integers.

$\mathbb{Q}$ for the rational numbers.

$\mathbb{C}$ for the complex numbers.

The notation $x \in S$ to say $x$ is an element of the set $S.$

The factorial $n! = n(n1)\cdots(3)(2)(1)$ for $n\in\mathbb{N}.$

The binomial coefficient $$\binom{n}{k} = \frac{n!}{k!(nk)!}$$ when $n,k \in \mathbb{N}$ and $n \geq k.$ As explained in the text, we extend this to all $n \in \mathbb{C}$ and $k \in \mathbb{N}$ by defining $$\binom{n}{k} = \frac{n(n1)\cdots(nk+1)}{k!}.$$

The set notation $[n] = \{1,2,\dots,n\}$.
Other References #
Our proof of LIFT, discussion of $q$analogues, and some of the exercises in parts 1 and 2 of these notes are based on David G. Wagner’s CO 330 Course Notes and past offerings of CO 330 by instructors at Waterloo (including David Wagner, Karen Yeats, and Kevin Purbhoo). Our treatment of the symbolic method and combinatorial constructions follows Analytic Combinatorics by Philippe Flajolet and Robert Sedgewick. Other sources covering the topics we discuss include

An Invitation to Analytic Combinatorics: From One to Several Variables by Stephen Melczer. Springer, 2021.

Generatingfunctionology by Herbert Wilf. Academic Press, 1990.

Enumerative Combinatorics (Volumes 1 and 2) by Richard Stanley. Cambridge University Press, 1997 (vol 1) and 1999 (vol 2).

Combinatorial Species and Treelike Structures by François Bergeron, Gilbert Labelle, and Pierre Leroux. Cambridge University Press, 1998.

Combinatorial enumeration by Ian P. Goulden and David M. Jackson. John Wiley & Sons, 1983.

Algorithmes Efficaces en Calcul Formel (Efficient Algorithms in Computer Algebra) by A. Bostan, F. Chyzak, M. Giusti, R. Lebreton, G. Lecerf, B. Salvy and E. Schost, 2017.
Nothing delays more the advancement of the Sciences, and puts a greater obstacle to the discovery of hidden truths, than the mistrust in which we have of our strengths. The greater part of those things which may appear impossible are only so for lack of allowing the human intellect all the extent that it can achieve.
— Pierre Remond de Montmort