Numerical optimization: mathematical background, constrained and unconstrained optimization, single- and multi-objective optimization, iterative optimization methods. On the existence and uniqueness of the optimal solutions. Applications mostly, though not exclusively, in fluid mechanics, hydro- and aerodynamics, with a summary of the required background. Deterministic optimization methods. Gradient-based optimization methods. Steepest descent, Newton method, quasi-Newton method, conjugate direction and conjugate gradient methods. The adjoint method for computing the gradient of objective functions in problems governed by PDEs, by focusing on representative fluid mechanics applications. Continuous and discrete adjoint methods. Other competitive methods (algorithmic differentiation, complex variable method, direct differentiation, etc). Applications. Stochastic optimization methods based on evolutionary algorithms and computational intelligence: pros and cons. Treatment of multi-objective problems. The Simplex method, simulated annealing, tabu search. Constrained optimization. Applications using the EASY software.