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.
Data Processing and Visualization
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.
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.
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.
Objective: introducing to the main techniques for the design of algorithms and data structures to manipulate strings, trees and large graphs, in particular to compression techniques and randomization.
NOTE: The equivalent name of this course is "Algorithms for Massive Data".
Objective: You will learn how to organize, transform, analyse and visualize data, with a focus on the relational data model, and a detour to semistructured data. You will learn the fundamentals of data science using R environment.
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.
Objective: presenting the most important conceptual aspects of information retrieval systems and both principles and techniques for data visualization.
Objective: presenting advanced machine learning techniques, with a focus on Bayesian methods.