This document describes breadth-first search (BFS) graph algorithms. It begins by defining graphs and different graph representations. It then explains BFS, which explores a graph by exploring all of the neighbor nodes of the starting node, then all of the neighbors of the neighbors, and so on outwards in "waves" or breadth-first manner. The document provides pseudocode for BFS and walks through an example run on a sample graph to demonstrate how BFS works. It concludes by discussing the running time of BFS and providing an example programming assignment for implementing BFS.