This course is an algorithmic approach to the mathematical theory of graphs and their applications. Path problems, covers, network flows and other problems will be formulated in graph theoretical terms and solutions will be programmed. For graduate credit, a student will be required to write a term paper or execute a project that reflects deeper investigation of the topics covered in the course.