Lec. 2: Approximation Algorithms for NP-hard Problems