The course aims at providing the mathematical foundations for some of the main computational approaches to Learning, Data Analysis and Artificial Intelligence. These comprise  techniques and methods for the numerical solution of systems of linear and nonlinear equations and related problems (e.g., computation of eigenvalues), as well as methods for the solution of constrained and unconstrained optimization problems. This requires the understanding of the connections between techniques of numerical analysis and optimization algorithms. The course focuses on presenting the main algorithmic approaches and the underlying mathematical concepts, with attention to the implementation aspects. Hence, use of typical mathematical environments (e.g., Matlab and Octave) and available solvers/libraries is discussed throughout the course.