This is a comprehensive course in graph theory, covering the core topics in the field, as well as some more advanced and specialized topics. A tentative syllabus: Basics, connectivity and Menger's theorem, matchings, vertex and edge coloring, high girth and high chromatic number, planar graphs (including Kuratowski's theorem), trees and the Matrix-Tree theorem, Euler tours and Hamilton cycles, Ramsey theory, spectral graph theory, perfect graphs. Additional topics (extremal graph theory, treewidth) will be covered if time permits.