**Principles of counting** (1.1--1.4). Formulas for the number of linear
arrangements (without or with repetitions), circular arrangements (without
repetitions), and combinations (without or with repetitions).
Algebraic properties of binomial coefficients; identities; applications.

No amount of
formulas can substitute for experience; study examples and see how
various problems are reduced to standard ones (usually via a case by case
consideration; a good approach would reduce the number of cases).
Note also that it is much easier to remember the ideas
behind the formulas than the formulas themselves and the conditions for
their applicability.
Learn to extract the mathematical essence of a problem
from its textual shell! Avoid overcounting!

**Fundamentals of logic** (2.1, 2.2, 2.4). The concept of (closed) statement =
Boolean variable. Elementary Boolean operations and Boolean expressions, properties (identities),
simplification. Disjunctive normal form. Applications. Open statements;
quantifiers and their simplest properties. (Remark: we do **not** do
formal proofs as they are not proofs :)

**Set theory** (3.1--3.3). Sets, elements, subsets. Sets as open statements.
The number of subsets; applications (counting and combinatorial identities).
Set operations (union, intersection,
complement, difference, symmetric difference) and their properties. Venn diagrams;
applications to counting.

**Properties of integers** (4.1, 4.3--4.5).
Well ordering and its applications; induction. Divisibility of integers, primes,
greatest common divisor, Euclidean algorithm, prime factorization and its
uniqueness.

**Relations and functions** (5.1--5.3).
Cartesian product. Relation as a subset. Functions. Counting relations, functions,
injections, and surjections. Stirling numbers.

**^^^ Midterm I ^^^**

**The Pigeonhole principle** (5.5).
Solve the problems and study the examples in the book. In addition to the
principle itself, there are quite a few tricks!

**Properties of relations** (7.1, 7.3--7.4).
Terminology related to relations: reflexive, (anti-)symmetric, transitive;
relation matrix (discussed in class; see 7.2).
Counting relations.
Partial orders and Hasse diagrams; common examples (usual numeric order,
divisibility, inclusion); minimal, maximal, greatest etc. elements.
Equivalence relations, partitions, and quotient sets.

**The principle of inclusion and exclusion** (8.1--8.2).
The principle (no condition holds), generalizations (exactly *m* conditions,
at least *m* conditions), applications (Stirling numbers, Euler function
and its properties, miscellaneous applications to counting)

**Generating functions** (9.1--9.5).
The concepts of ordinary and exponential generating functions. Theirs usage:
ordinary functions for 'combination problems' (more precisely,
number of integral solutions to a linear equation with various restrictions
to the unknowns) and exponential functions for 'permutation problems'
(the ship with flags in Example 9.28 is a very typical one). Other
applications: partitions of integers, the summation operator and its usage.
Dealing with functions: most often used power series, ways to obtain new series
from known ones (multiplication by *x*, multiplying out, differentiation,
representing a 'long' polynomial as
(*x ^{k}*-1)/(

**^^^ Midterm II ^^^**

**Recurrence relations** (10.1--10.4).
Solving linear recurrence relations with constant coefficients, both
homogeneous and nonhomogeneous (via undetermined coefficients and using
generating functions). Applications to counting problems ('counting by
induction').

**Graphs** (11.1--11.4, 11.6(?)).
The notion of (multi-)graph (informally and formally); related terminology
(vertices, edges, incidence, adjacency, degree = valency,
walks, trails/circuits, paths/cycles, etc.) Connectedness of graphs;
connected components. Subgraphs. Graph isomorphisms,
detecting (non-)isomorphic graphs (no algorithm, just common sense + practice!)
Applications of graphs. (Since we don't know much about graphs, the latter
mainly means the ability to restate various problems in the graph language.)
Counting in graphs (walks, trails, paths, etc.; again, there's no algorithm here;
just use common sense and your intuition).
Bipartite graphs.
Planar graphs. Kuratowski's theorem (statement only).
Euler's theorem and its applications (detecting non-planar
graphs, Platonic solids, etc.) Chromatic polynomials.
(**Remark:** note that most problems here are 'proof' problems; there's no
common recipe to solve them, although there are quite a few tricks; hence,
what you need is practice!)

*Last update: May 12, 2005*