This course focuses on the mathematical theory of graphs; a few applications and algorithms will be discussed. Topics include trees, connectivity, Eulerian and Hamiltonian graphs, matchings, edge and vertex colorings, independent sets and cliques, planar graphs, and directed graphs. An advanced topic completes the course. Familiarity with linear algebra and basic counting methods such as binomial coefficients is assumed. Comfort with reading and writing mathematical proofs is required.