Network flow problems are a special class of mathematical programming problems with applications in variety of domains including but not limited to transportation, logistics,  and manufacturing. The objective of this course is to enable students to have a solid understanding of the fundamental concepts of network flows and develop students' skills to implement mathematical methods to models and solve network flow problems. In particular, this course concentrates on some of the applications of network flows and focus on key special cases of network flow problems including the following: the shortest path problem, the maximum flow problem, the minimum cost flow problem, and the multi-commodity flow problem.