Computer Science Courses 2019

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

Cluster Analysis
Speaker: Enza Messina
Period: June 2019
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.

Design Techniques for Learning Algorithms
Speakers: Riccardo Dondi, Italo Zoppis
Period: June/July 2019
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.

Laboratory of Population-Based Optimisation Methods
Speakers: Luca Manzoni, Luca Mariot, Marco S. Nobile, Leonardo Vanneschi
Period: June/July 2019
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.

Static and Dynamic Software Analysis
Speakers: Pietro Braione and Giovanni Denaro
Period: Sept 2019
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).

Causal Networks: Learning and Inference
Speakers: Luca Bernardinello, Peter Lucas, Fabio Stella
Period: Sept 2019
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

Interdisciplinary courses