Courses 2018-2019

Computer Science Courses 2018-19

Artificial Intelligence approaches to Physical and Virtual Crowd Phenomena
Speaker: Giuseppe Vizzari
Period: Starting on Jan 28th, 2019
This course discusses Artificial Intelligence approaches to issues and opportunities implied by the study of complex systems (by means of direct analysis of the related dynamics, as well as by means of modeling and simulation) considering specifically crowding phenomena as a specific example, on which both activities of analysis and synthesis (modeling and simulation) will be discussed.
Particular attention will be paid to phenomena associated to the actual movement of pedestrians and crowds in the built environment, studied with the final goal of supporting designers, planners and managers of events characterized by significant crowding conditions.
The state of the art on modeling approaches will be presented, and also relevant exploitable tools for the simulation of crowds of pedestrians will be introduced.
The course will finally discuss “virtual” forms of crowds, in particular, considering studies on the collective behaviour of (i) social network users and (ii) other kinds of socio-economic systems.
Course on Moodle

Laboratory of Population-Based Optimisation Methods
Speakers: Luca Manzoni, Luca Mariot, Marco S. Nobile, Leonardo Vanneschi
Starting date: 13th May 2019, 13:30-15:30, Building U14, room T014
Course Schedule *updated*
Registration form: register now! (registration is mandatory to attend the course)
An important area of machine learning is the one of population-based optimisation methods, in which a collection of candidate solutions to a problem is iteratively refined to produce better and better solutions. Methods that are part of this area include: Genetic Algorithms (GA), Differential Evolution (DE), Genetic Programming (GP), Particle Swarm Optimization (PSO), Ant Colony Optimization (ACO) and, more in general, the Swarm Intelligence methods. This course will introduce both the practical and the theoretical aspects of these methods, with examples of application to real-world scenarios.
Course on Moodle

Cluster Analysis
Speaker: Enza Messina, Antonio Candelieri
Course Schedule:
6th June 2019, 10:00-13:00 (Building U14, seminar room), 14:30-17:30 (building U24)
7th June 2019, 10:00-13:00 (Building U14, seminar room), 14:30-17:30 (building U24)
10th June 2019, 10:00-13:00 (Building U14, seminar room), 14:30-17:30 (building U24)
11yh June 2019, 10:00-13:00 (Building U14, seminar room), 14:30-16:30 (building U24)
Registration form: register now! (registration is mandatory to attend the course)
The course will start with an introduction to cluster analysis and then explore: proximity measures, hierarchical clustering, partition clustering, kernel-based clustering, sequential data clustering, data visualization, high-dimensional data clustering and cluster validation.
A set of application will be selected from different domains.
Course on Moodle

Design Techniques for Learning Algorithms
Speakers: Riccardo Dondi, Italo Zoppis
Starting date: 3rd July 2019, 10:00-12:00, Building U24, room C01
Full schedule
Registration form: register now! (registration is mandatory to attend the course)
Relevant machine learning techniques such as kernel methods and reverse mode differentiation have achieved a remarkable progress in the field of learning from data, leading to a great deal of academic and commercial interest. The objective of this course is to provide students with the fundamentals of such techniques to master, extend and apply a machine learning advanced algorithm design.
Although the main theoretical aspects will be covered, the emphasis will be confined to intuitive concepts and definitions. In particular, focus will be placed on.
1. Principle topics of Learning Theory (to deepen base aspects of the learning problem).
2. Principle topics of Kernel Methods and Automatic Differentiation in Reverse Mode as fundamental techniques for algorithm design: (a) Design for structured data (e.g., graphs, tree, text.); (b) Design for Generative and Graphical Models.
3 Implementation: TensorFlow Libraries for R/Python.
Course on Moodle

Static and Dynamic Software Analysis
Speakers: Pietro Braione and Giovanni Denaro
Starting date: Sept 5th, 2019. 13:30-17:30, sala riunioni 3rd floor, Building U14
Course Schedule
5/9, 13.30-17.30, sala riunioni 3rd floor, Building U14
17/9, 13.30-17.30, sala riunioni 3rd floor, Building U14
18/9, 13.30-17.30, sala riunioni 3rd floor, Building U14
19/9, 13.30-17.30, sala riunioni 3rd floor, Building U14
20/9, 13.30-17.30, sala riunioni 3rd floor, Building U14
Registration form: register now! (registration is mandatory to attend the course, deadline August 29)
This course presents the most relevant techniques for software analysis, in particular: finite state verification, data flow analysis, symbolic execution and dynamic memory analysis. Finite state verification enables to rigorously verify the properties of both specifications and implementations of software and software-based systems, e.g., communication protocols, algorithms with hard space and temporal requirements, critical robotic systems and concurrent systems. Static and dynamic software analysis techniques enable the analysis of both functional and non-functional properties of programs of any application domain, including performance properties, privacy and security, internal qualities of implementations, inter-system dependencies and memory usage. The course includes lab activities with the frameworks Spin, Alloy, IBM WALA, Pex symbolic executor (Microsoft research), JBSE symbolic executor (LTA@UniMiB), and Daikon dynamic invariant generator (University of Washington).
Course on Moodle

Causal Networks: Learning and Inference
Speakers: Luca Bernardinello, Peter Lucas, Fabio Stella
Starting date: Sept 23rd, 2019. 11:00-13:00, and 14:30-17:30, classroom T023, Building U14
Registration form: register now! (registration is mandatory to attend the course, deadline September 16)
Causality is central to the understanding and use of data. Without an understanding of cause-effect relationships, we cannot use data to answer questions as basic as “Does this treatment harm or help patients?” .
The course presents causal networks by first providing basics probability and introducing graphical models. Then, the problem of predicting the effect of interventions is presented and discussed. Finally, counterfactuals and their applications are presented.
Course on Moodle

Bayesian Optimization & Machine Learning (10 hours course)
Speakers: Francesco Archetti, Antonio Candelieri
Starting date: Nov 12th, 2019. 15:00-18:00, meeting room 3rd floor, Building U14
Full Schedule

Registration form: register now! (registration is mandatory to attend the course, deadline November 5)
The reference problem is Automated Machine Learning (AutoML) targeting, in particular, features engineering, model selection and hyperparameters tuning. The objective of the course is to provide students with methods and tools to solve AutoML. The identification of an accurate ML model is computationally very expensive because it requires to train and test, by measuring a loss function on k-fold cross validation, every ML algorithm configuration. To identify an accurate model within a limited number of configurations, a sample efficient procedure is adopted, usually Bayesian Optimization (BO). BO consists of a probabilistic surrogate model, typically a Gaussian Process, to approximate the value of the loss function depending on results from previous configurations. The next configuration to be evaluated is chosen according to an acquisition function, which balances the trade-off between exploration and exploitation. BO is becoming the “standard de-facto” in the academic community and industrial sector for AutoML.
The course will consider the main theoretical aspects of BO as well as learning how to use BO-based platforms.
Students will start with basic frameworks such as Scikit-Optimize, an open-source library in Python, to optimize ML algorithms from Scikit-Learn. Simple applications will be designed, developed and tested.
Finally, an overview on more sophisticated platforms will be provided, among which AutoML Tables, a recently released Google platform, DragonFly, developed in Python at Carnegie Mellon University, and SigOpt, a commercial BO-as-a-service solution.
Course on Moodle