COURSE OUTLINE
Session 1
Counting
The four principles of counting: addition, multiplication, subtraction, and division. Examples.
Session 2
Permutations and combinations
Permutations, number of different permutations. Subsets, number of different subsets. Binomial coefficients. Sum of binomial coefficients.
Session 3
The pigeonhole principle
The pigeonhole principle. Sample applications. The Chinese remainder theorem.
Session 4
Graphs: the basics
Definitions: graph, vertex, edge, loop, degree, path, cycle, directed and undirected graphs, connected and disconnected graphs, adjacency matrices.
Session 5
Connectivity
Walks, trails, and paths. Connected and disconnected graphs. Disconnecting sets, cut sets, bridges, edge connectivity. Separating sets, vertex connectivity, k-connectivity.
Session 7
Hamiltonian graphs
Hamiltonian cycles and Hamiltonian graphs. Ore's theorem.
Session 8
Algorithms on graphs
Depth-first and breadth-first searches. Weighted graphs. The shortest path problem. Dijkstra's algorithm.
Session 9
Trees
Trees as minimally connected graphs. Number of edges in a tree. Spanning trees. Kruskal's algorithm to find a minimal spanning tree.
Session 10
Counting graphs
Graph isomorphism. How many non-isomorphic graphs are there? Counting trees: Cayley's formula.
Session 11
Graph colorings
Coloring a graph. Bipartite graphs. Matchings and maximal matchings. Philip Hall's theorem.
Session 12
Planar graphs
Planar graphs. Euler's theorem. Non-planarity of K_{3,3} and K_5.
Session 13
Ramsey's theorem
Bringing together combinatorics and graphs: Ramsey's theorem.
Session 14
Course review and problem session I
Course review. Exercises.
Session 6
Eulerian graphs
Eulerian trails. Seven Bridges of Königsberg. Euler's theorem. Fleury's algorithm for constructing a Eulerian trail.
Session 15
Final test
Final test