Have you ever played a board game or a video game where you mentally figured out the shortest path between two locations before moving? Or have you ever followed a sports team only to discover three quarters of the way through the season that they have no possible chance at winning because they are so far behind? Then you have unknowingly used network flows. Network flows can be used to optimize a variety of problems including shortest path, maximum flow, and finding the minimum cost of a flow. Through applications, we will explore a few ways to approach each of these problems to determine the most computationally efficient way to solve each problem.