This course will review the theory and applications of Data Analysis and Numerical Optiization, illustrating the main results and the applications of the theory to practical problems. The expected learning outcomes include being able to consciously reproduce the theory behind the main unconstrained optimization methods and being able to frame and solve some key machine learning problems.