This course on optimization techniques, designed for third-year students in automatic and intelligent systems (ASI), offers a comprehensive immersion into essential mathematical foundations and advanced methods for solving optimization problems with or without constraints. It begins with a review of fundamental mathematical concepts before presenting various optimization methods in both one-dimensional and multidimensional spaces, covering classical approaches for characterizing extrema and extending to methods such as gradient descent and the Newton algorithm. The course also explores constrained optimization problems using tools like Lagrange multipliers and penalty techniques while integrating the study of linear programming and associated algorithms to address situations where relationships are linear. By combining rigorous theory with practical applications, this course enables students to develop a strong expertise essential for tackling industrial and research challenges in automation and intelligent systems.