http://logic.pdmi.ras.ru/midas/?q=en/courses#combopt
We will present algorithms, both exact and approximate, for several fundamental problems in combinatorial optimization. We will first cover algorithms for maximum flow problems -- both augmenting path and push/relabel algorithms. We will then present an algorithm for minimum cost flow. Then, we will cover some basic techniques in approximation algorithms, using the problem of scheduling jobs so as to minimize the average completion time as an example problem.
Through studying these problems, we will emphasize many popular techniques in algorithm design, including scaling, duality, invariants, lower bounds and potential functions.