In this thesis, we will explore several different approximation algorithms for the set cover problem. We implement several of these approximation algorithms such as Primal Linear program, Dual Linear program, Primal-Dual algorithm, and Greedy algorithm and conduct experiments to compare the performance of these approximation algorithms on the basis of approximation ratio, or the performance guarantee of the algorithm, and time. I will be using the approximation algorithms to solve the set cover problem, a classical combinatorial optimization problem.