This course offers an introduction to optimization problems, algorithms, and their complexity, emphasizing basic methodologies and the underlying mathematical structures. The main topics covered include: Theory and algorithms for linear programming Network flow problems and algorithms Introduction to integer programming and combinatorial problems