This document provides an overview of graphs and graph algorithms. It begins with definitions and data structures for representing graphs. It then covers graph traversal algorithms, including depth-first search (DFS) and breadth-first search (BFS). Topological sorting of directed acyclic graphs is also discussed. Exercises are provided to implement DFS, BFS, and topological sorting.