BFS is a graph search algorithm that begins at a starting node and explores all neighboring nodes. It explores nodes level-by-level, exploring all nodes at the present depth prior to moving to the next depth level. The algorithm uses a queue to keep track of nodes to visit at the current depth and labels nodes as discovered as they are visited.