1st year
Foundations of High Performance Computing
Objective: introducing students to modern architectures for high performance computing. Students will learn how to properly test such architectures (computing power, bandwidth, latency, energy efficiency). Leveraging these skills, students will be introduced to the parallel programming based on MPI protocols (Message Passing Interface) and multi-threading with OpenMP.
Probabilistic Machine Learning
Objective: presenting advanced machine learning techniques, with a focus on Bayesian methods.
Machine Learning and Data Analytics
Objective: introducing students to the principles of data analysis, to data mining, and to machine learning (supervised and unsupervised learning).
Detailed description (a.a. 2017/18): See here.
Numerical Analysis
Objective: providing numerical analysis tools for scientific computing, with particular attention to linear algebra, polynomial approximation, numerical integration, numerical solution of ordinary differential equations and partial differential equations, approximation of eigenvalues and eigenvectors.
Data Management for Big Data
Objective: introducing students to computational management of data, in particular the characterization of an information system, data modeling, design and management of databases, including non-traditional ones (eg, unstructured documents, spatial data, biological data , multimedia data), to the fundamentals of distributed data and to methodologies and techniques for the management and analysis of big data.
Statistical Methods for Data Science
Objective: presenting the basic elements and principles of inferential statistics and statistical techniques for the analysis of complex data.
Statistical Machine Learning
Objective: presenting advanced machine learning techniques, with a focus on deep learning and Bayesian methods.
Detailed description (a.a. 2017/18): See here.
Advanced Programming and Algorithmic Design
Objective: providing advanced knowledge of both theoretical and practical programming in C / C ++ and Python, with particular regard to the principles of object oriented programming and best practices of software development (advanced use of version control systems, continuous integration, unit testing), and introducing the modern technology of algorithms development.
Stochastic Modelling and Simulation
Objective: introducing students to the fundamentals and practice of stochastic modeling, simulation of stochastic models and inference of parameters starting from observations, with a focus on scalability for large models.
Optimisation Models
Objective: providing students with the methodological, theoretical and practical tools to formulate linear programming models and combinatorial optimization problems and to solve them, even for high dimensionality problems, using appropriate optimization software.
Advanced Numerical Analysis
Objective: introducing the student to state of the art methods for the numerical simulation of partial differential equation.
Introduction to Machine Learning
Objective: Introduce the students to the machine learning fundamentals, to the main techniques on supervised learning, and to the principal application domains. Present evolutionary calculation. The course explains how to design, develop and evaluate simple ML-based end-to-end systems and, at the same time, how to describe their operations.
Data Analytics and Statistical Learning
Objective: introduce the student to the principles of learning from data based on statistics, and to the scientific treatment of data to obtain new and reproducible knowledge. Some of the main supervised and unsupervised statistical learning techniques are presented.