Breadth First Search (BFS) is an algorithm for traversing or searching tree and graph data structures by exploring neighboring nodes first before moving to the next level neighbors. It works by assigning levels to nodes starting from the root node as level 0 and then exploring each level in order, marking visited nodes and placing unvisited children in the queue to be explored next.