Topics: algorithms for optimization problems such as atching, maxflow, min-cut and load balancing. Using linear programming, emphasis is on LP duality for design and analysis of approximation algorithms. Approximation algorithms for NP-complete problems such as Steiner trees, traveling salesman and scheduling problems. Randomized algorithms.