**Lecture 2**: Definitions and basic notions.

**Lecture 3**: The language of muligraphs and pseudographs. Eulerian tours and circuits, part 1.

**Lecture 4**: Eulerian tours and circuits, part 2.

**Lecture 5**: Minimal paths and Dijkstra's algorithm.

**Lecture 7**: Minimal spanning trees: Kruskal and Prim.

**Lecture 8**: Matrix perspectives, more minimal spanning trees.

**Lecture 9**: Graph theory introduction (Level 2). Cut vertices.

**Lecture 10**: Characterizations of connectedness and separability

**Lecture 11**: Equivalence relations and blocks (part 1)

**Lecture 12**: Graphs and epidemiology. Review of blocks and equivalence relations

**Lecture 13**: Separations, subdivisions and cycles

**pre-Lecture 14**: Cuts and connectivity

**Lecture 14**: Cuts and connectivity

**Lecture 15**: What's the point of Menger's Theorem?

**pre-Lecture 16**: Colorings

**pre-Lecture 17**: Partite-ness and Basic Coloring Algorithms

**Lecture 17**: Partite-ness and Basic Coloring Algorithms

**Lecture 19**: Graph Theory Introduction, Level 3

**pre-Lecture 20**: Contraction-deletion and colorings

**Lecture 20**: Contraction-deletion and colorings (slides)

**Lecture 21**: Contraction-deletion and colorings

**Lecture 22**: Towards Brooks' Theorem, part 1

**Lecture 23**: Towards Brooks' Theorem, part 2

**Lecture 24**: Brooks' Theorem, part 3 (conclusion)