The students attending this course will learn how to formulate practical decisional problems using mathematical models. They will learn the basic concepts of linear optimization and how to solve linear programs and integer linear programs by means of fundamental optimization algorithms, such as the simplex algorithm and branch and bound method. Finally, they will learn to implement optimization problems in the appropriate programming language and to evaluate the results obtained.