The document provides an overview of linear programming and its usage in approximation algorithms for NP-hard optimization problems. It discusses linear programming formulations, the complexity classes P and NP, approximation algorithms, and two case studies on the minimum weight vertex cover problem and the MAXSAT problem. Randomized rounding techniques are used to generate approximation algorithms for these problems from their linear programming relaxations.