Courses offered by the PhD Program 2018 

Reverse engineering and exploitation of x86/64 binary programs

Giovanni Lagorio
Expected timetable: 11/12/2017 14:30-18:30, 14:30-18:30, 14:30-18:30, 18/12/2017 14:30-18:30, room: 710 @ DIBRIS VP

This course has a strong hands-on approach; proficiency in low-level C programming, and familiarity with operating system concepts are a must. Lectures will contain practical activities, therefore participants need to bring their own Linux laptops and set them up appropriately. The exam consists in the exploitation of some 32/64-bit programs (a different set for each student), and a subsequent discussion of the used techniques and tools.

Verification, Model Checking and Abstract Interpretation
Giorgio Delzanno
Numero di ore: 18h
Proposta: Format and dates to be defined with participants

An overview of formal languages and algorithms used for verification of (abstractions) of hardwarre, software and communication protocols with particular attention for concurrent and distributed systems (finite and infinite-state specifications): FOL and Modal Logic. Temporal Logic: LTL and CTL. Model checking algorithms, Existential/Universal Abstractions, Abstraction Refinement, Abstract Interpretation, Fixpoint Computation, Widening. Abstract domains: Intervals, Octagons, Polyhedra. Infinite-state and Parameterized systems

 An introduction to optimization over time and its application to online machine learning and reinfocement learning

Giorgio Gnecco (IMT Lucca)
Keywords Dynamic programming, LQG online learning, value and policy iteration and their approximate versions
Dates: January 29, 2018 - February 2, 2018

The course first provides an introduction to classical methods of dynamic optimization, such as the Bellman  Optimality Principle and the Pontryagin Principle. Then, it introduces to more recent topics, such as  Approximate Dynamic Programming. The proofs are outlined; the details are presented only when they  provide useful insights. Both discrete-time and continuous-time optimization are considered. Several  applications and case-studies are described and discussed.

Discrete-time N-stage optimization, Dynamic Programming, LQ and LGQ problems,The Riccati Equations, The Kalman Filter, Approximate Dynamic Programming, Continuous-time optimization: the Hamilton-Jacobi-Bellman Equation and the Pontryagin Principle Case-studies and examples 

Strategic Choices: Games and Team Optimization
Lucia Pusillo (DIMA) e Marcello Sanguineti
Keywords  non-cooperative games, strategic games, cooperative games, team optimization, stochastic information structure
February 2018 

Abstract  Game and Team Theory study strategic interactions among two or more agents, which have to take decisions in order to optimize their objectives. They have various links to disciplines such as Economics, Engineering, Computer Science, Political and Social Sciences, Biology, and Medicine. These links provide incentives for interdisciplinary research and make the role of Game and Team Theory invaluable in a variety of applications. The main goal of this course consists in providing students with the basic mathematical tools to deal with interactive problems and illustrating them via case-studies
Program Non cooperative games, Strategic games and extended-form games, Incomplete-information games Well-posedness problems for Nash equilibria, Repeated games, Evolutionary stable strategies, Multiobjective games and solution concepts, Cooperative TU-games, Solutions for cooperative games, Partial cooperative games and applications to environment models, Some applications to medicine problems via Game Theory, Team optimization with stochastic information structure, Examples of applications of team optimization in contexts such as: nonverbal communication & social interactions; optimal production telecommunication networks.


Introduction to Convex Optimization
Saverio Salzo (IIT), Silvia Villa (PoliMI)
Keywords algorithms, convex optimization, splitting methods.
February 12-16 and 19-23

Convex optimization plays a key role in data sciences. The objective of this course is to provide basic tools and methods at the core of modern nonlinear convex optimization. Starting from the gradient descent method we will cover some state of the art algorithms, including proximal gradient methods and alternating direction method of multipliers, which are nowadays very popular techniques to solve machine learning and inverse problems.

Model Predictive Control and Applications

Mauro Gaggero
Keywords: Model predictive control, optimization, examples of practical applications
Dates: 19-23 marzo 2018

Model predictive control (MPC) is a control paradigm that has been widely employed in the literature owing  to its ability to exploit information on the future behavior of the system to control, its capability of dealing with constraints, and the presence of many theoretical results about its properties. From various decades, MPC has been used for process control in chemical plants, and nowadays it is employed for controlling also other complex setups such as, for example, power plants, mechatronic systems, logistics operations, cloud  computing applications, and so on. It is still receiving on-going interest from researchers in both the industrial and academic communities. The course will start from the basic theoretic notions of MPC, together with recent developments in design and implementation. Special attention will be devoted to the computational aspects of MPC and to the existing techniques to reduce the overall required effort. An overview of receding-horizon state estimation, a topic strictly related to MPC, will be given as well. Finally, recent applications of MPC will be presented, together with details of their software implementation. 

Program: Introduction to discrete-time model predictive control. Model predictive control with constraints. Model predictive control and stability analysis. Moving-horizon state estimation. Real-time implementations of model predictive control. Examples of applications of model predictive control 

Logic-based agent languages

Viviana Mascardi

Tentative dates:
April 10,13,17,20,24, May 4, 14:30-17 (if some students plan to follow the "Affective Computing and Embodied Interfaces" course, the teacher can adjust the timetable to avoid overlaps)


Registration form (deadline April 6):

Introduction to Declarative Programming, Logic Programming, Agent-Oriented Programming with practical lab sessions in Prolog.

The course will introduce rational software agents. In particular, it will present languages for modeling and implementing their reasoning mechanism. Some space will be devoted to connections between Prolog, Semantic Web and Computational Linguistics.

The course will devote about eight-ten hours to introducing Prolog, the logic programming language that better shows how to support rationality of a software system. About four-six hours will be spent in laboratory to better understand the Prolog language from a practical viewpoint. The remaining hours of the course will be devoted to Jason, a logic-based agent-oriented programming language (related with the Multiagent Systems course of the Master in Computer Science), and to connections between Prolog, Semantic Web and Computational Linguistics (related with the Data Semantics course of the Master in Computer Science).

Affective Computing and Embodied Interfaces
Docenti: Maurizio Mancini e Radoslaw Niewiadomski
Contacts: This email address is being protected from spambots. You need JavaScript enabled to view it.
Dates: April 9-13, 2018, 14-18 room 214, DIBRIS Valletta Puggia
Keywords: HCI, interfaces, affective computing, embodied interfaces


Affective Computing is a relatively new but rapidly growing research domain, which is still rarely presented in university courses. The constantly increasing use of technologies in everyday life, such as mobile and wearable devices, Internet-of- Things (IoT), robotics, makes the study of emotion-aware human-machine interaction one of the most emerging research fields of HCI. Affective Computing aims at enriching purely technological applications with the needs and expectations that characterize human-human interaction. The aim of the course is to introduce the basic aspects of Affective Computing. Topics will include an introduction to various psychological theories of emotion, techniques for recognizing and synthesizing emotional behavior, as well as the creation of affect-aware multimodal interaction. The first part of the course, presented by Radoslaw Niewiadomski, will address the following topics: 1) introduction to affective computing (motivations, applications, etc.), 2) theories of human emotion, 3) computational models of emotion, 5) expressions of emotion, 6) techniques of data collection, 7) introduction to emotion recognition. Embodied Conversational Agents (ECAs) are a powerful user interface paradigm, aiming to transfer the inherent richness of human-human interaction to human-computer interaction. ECAs are virtual embodied representations of humans that communicate multimodally with the user (or other agents) through voice, facial expression, gaze, gesture, and body movement. In the last years, ECAs have been more and more exploited in affective and social computing, and are increasingly becoming able to show emotional states, mood, social bonds, and so on. The second part of the course, presented by Maurizio Mancini, will cover the following aspects of ECAs: 1) ECAs as a particular type of multimodal interfaces, 2) state of the art, overview of the existing ECA systems, 3) computational models of emotion for ECAs, 4) ECAs as a test bed of emotion theories in humans.

Requirements Engineering in agile, data-driven development contexts, and not only

Instructors: Angelo Susi (FBK), Anna Perini (FBK), Filippo Ricca (DIBRIS), Paolo Tonella (FBK)
Duration: 1 week full time / 30h
Dates: May 7-11, 2018
Where: DIBRIS - Via Opera Pia, viale F. Causa or via Dodecaneso, 35
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.

Requirements engineering (RE) is one of the crucial phases in software development. It can be defined as the process of discovering the purpose of a software system by identifying stakeholders and their needs, and documenting these in a form that is amenable to analysis, communication, and subsequent implementation (Nuseibeh and Easterbrook, 2000).
Mistakes in the requirements gathering and analysis may determine the failure of the entire development process and of the system itself. Moreover, in the last years, a new trend in system development is that of gathering and analysing knowledge from the users of the system, considering also the analysis of the data from social networks and feedback mechanisms by which users report issues, in order to envisage new requirements that may be used for system evolution.
This Requirements Engineering course intends to offer an overview on the most relevant problems and advanced methods and techniques for the whole requirements engineering process, from requirements elicitation, to their analysis and verification till their prioritization and evolution. The course includes theory lectures in the morning (3h each) and hands-on, project oriented lectures in the afternoon (3h).

The course will be articulated into three main parts. The first part will provide and discuss the basic concepts and definition of RE proposed in different requirements methodologies reported in literature. In the second part we will introduced methods and techniques, both manual and tool-supported, for requirements elicitation, analysis (such as Goal-Oriented analysis), prioritization and negotiation (also using genetic algorithms), documentation, change management, and verification (for example via formal methods based techniques). Finally, the third part will give an excursus on the main characteristics of the requirements phase within different software development processes, such as waterfall or agile processes, and will present the recent trends related to the strong interaction between requirements engineering and software testing, taking part in a continuous software evolution process.

Languages and Solving Techniques for Knowledge Representation and Reasoning

Carmine Dodaro (DIBRIS)
Dates: May 14-18, 9:30-13:30, 20hrs
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.


Knowledge can be expressed by means of (declarative) sentences in a symbolic language, and such knowledge is then processed by running a reasoning procedure that works on these sentences. In order to deal with problems of real-world size, software systems that implement such kind of knowledge processing (often called provers or solvers) require advanced methods that take advantage of mature technology and solving techniques. This lecture shall give an overview on some languages employed and state-of-the-art methods and techniques implemented in solvers. The knowledge representation formalisms that are within the scope of this course include Propositional Satisfiability (SAT), Answer Set Programming (SAT), and extensions. SAT is a milestone problem in Artificial Intelligence and Computer Science, for both complexity and practical reasons. ASP borned both as an evolution of the languages for data bases, and as an attempt to give a convincing semantics to logic programs, that that nowadays has become prominent. Then, ASP evolved in a powerful KR&R formalisms, which is strictly more expressive than SAT.

Languages for data bases. Datalog. Normal logic programs (under the Answer Set semantics). Grounding, Propositional Satisfiability (SAT). Solving algorithms for SAT. Solving algorithms for normal logic programs. Disjunctive logic programs. Solving algorithms for disjunctive logic programs. Extensions of the language features and more reasoning tasks. Extensions of ASP (CASP) and applications (scheduling, planning in hybrid domains)

Mobile Security

Instructors: Alessio Merlo (DIBRIS), Gabriele Costa (IMT Lucca)
When: May 18-21, 2018, 20hrs
Where: DIBRIS - Via Opera Pia, viale F. Causa or via Dodecaneso, 35
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.

Abstract: The course is divided into two parts. The first part will deal with the technological aspects of mobile security, and it will provide insights on mobile architectures, as well as on some threat models, attacks and mitigation techniques for mobile devices.  The second part of the course will present the application of some formal techniques for the verification and enforcement of security properties under the assumption of code mobility. The presented approaches will be software model checking, runtime enforcement and contract-driven development.

Keyword: mobile architectures, mobile code security, static analysis, runtime enforcement, secure code development.

Machine Learning - A Computational Intelligence Approach 

F. Masulli, S. Rovetta (DIBRIS)
June 4-8, 2018, 18hrs
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it.

Computational Intelligence is a set of methodologies for information processing inspired by natural systems  that in recent decades have been successfully applied to the solution of complex problems. Among them  Neural Networks, Evolutionary Algorithms, Swarm Intelligence models, Simulated Annealing, and Fuzzy Sets  and Systems. In this course we present some applications of Computational Intelligence methods to supervised and unsupervised problems of Machine Learning.

Introduction. Fuzzy Sets and Systems. Data Clustering and applications:Data clustering. Segmentation.Neural networks for classification: Perceptual tasks, Neuron models, McCulloch and Pitts networks; perceptrons Optimization and the Adaline. Evaluating classifiers. Multilayer perceptrons. Pattern classification

Large-Scale Data Management

Instructors: Barbara Catania, Giovanna Guerrini
Dates: June 11-14, Schedule to be defined
Contact person: This email address is being protected from spambots. You need JavaScript enabled to view it.

Abstract. The aim of the course is to discuss issues related to the management and processing of massive datasets. In particular, students will be provided with basic knowledge of managing large volumes of data (Big Data) in large-scale distributed architectures. Students will learn the differences between traditional and large-scale data management; they will also learn about NoSQL data management systems and data modeling in these systems. Finally, they will learn the concepts behind the paradigms for the parallel processing of large amounts of data, such as MapReduce and Spark.

Program. Introduction to large-scale data management and data management. NoSQL systems: introduction, data models, aggregate-based systems, graph-based systems. Paradigms for parallel data processing: introduction to MapReduce and Spark.

Interaction in Virtual and Augmented Reality

Manuela Chessa (DIBRIS)
Dates: 18-20-21 June 2018, 9:00-13:00
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.">This email address is being protected from spambots. You need JavaScript enabled to view it.
Registration form

Human-Computer Interaction, Virtual Reality, Augmented Reality, Perceptual issues, Ecological interaction

The course will present the fundamentals of the design, implementation and assessment of virtual (VR) and augmented reality (AR) environments, and the techniques to interact within such environments. Particular attention will be paid to the perceptual issues and to the ecological interaction in VR and AR.

Introduction to VR and AR: techniques and devices;
Immersivity, presence, quality of experience, and adverse symptoms: study and evaluation;
Interaction in VR and AR: devices and software solutions. Techniques for ecological interaction;
Perceptual issues when acting in virtual and augmented reality;
Examples and case studies.

RegML: Regularization Methods for Machine Learning

Instructor: Lorenzo Rosasco (DIBRIS)
Machine Learning,  Statistical Learning, Regularization Methods, Kernel Methods
June 22-28, 2018, 22hrs
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.

A 20 hours advanced machine learning course including theory classes and practical laboratory session. The course covers foundations as well as recent advances in Machine Learning with emphasis on high dimen- sional data and regularization methods.

Multimodal Interfaces

Instructor: Gualtiero Volpe
Dates: July 2-6, 2018 (tutorial at EyesWeb Week 2018), 20hrs
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.

Keywords: Multimodal interactive systems, techniques for analysis of user behavior, techniques for analysis of full-body movement and gesture

This class focuses on the foundational elements of multimodal interfaces, i.e., human-computer interfaces that analyse and fuse information from different sensory channels. In particular, the class addresses the auditory, visual, and gestural channels. The goal is to provide guidelines for the design and development of multimodal interfaces to be exploited in several kinds of application scenarios, e.g., museum and cultural applications, performing arts, edutainment, entertainment, therapy and rehabilitation, and mobile devices.

Program: Introduction to multimodal interfaces, to affective computing, and to social signal processing; Analysis of human full-body movement and of expressive gesture: introduction to motion capture systems, extraction of gesture and movement features, theories and models for movement analysis; Analysis of non verbal social interaction; Sonic design and sound and music computing. Hands-on using the EyesWeb XMI platform for analysis of synchronised multimodal data streams (

Topology-based Data Analysis and Visualization

Ulderico Fugacci, Federico Iuricich, Leila De Floriani (Maryland University)
Dates: July 9-13
20 hrs

Topology deals with qualitative geometric information and provides a structural way to describe and understand data. Advantages of topological methods are the robustness of topological invariants under continuous and stretching deformations, and the availability of compact shape descriptors rooted in topology, which can be used for classification, recognition, visualization, reconstruction etc. Thus, the use of computational topology methods is proving crucial in the context of data analysis and visualization when facing unorganized data of high dimensions and large size. The main goal of the course is to present an overview of the most-widely used topology-based techniques adopted in data analysis and in data visualization. Specifically, the course aims at providing the students with both theoretical and computational foundations on such topological structures as well as with an understanding of their use in scientific data visualization and machine learning.
The course consists of four modules. In the first one, we will introduce the motivations for adopting a topological point of view in data analysis and visualization. Moreover, we will present the mathematical structures for representing data, these latter being characterized by huge sizes and high dimensions.  In the second module of the course, we will focus on the various tools introduced in literature for the analysis of the topological features of data: from the ones involving the Euler characteristic or the connectivity properties of a dataset to the much more complete topological information provided by homology and persistent homology. In the remaining two modules, we will focus on how the notions and tools can be applied for enhancing the visualization and the analysis of datasets arising in different application domains. In the third module, after an overview of the different ways in which topological information plays a role in visualization, we will focus on techniques for scalar fields, based on the evolution of the level sets or on segmentation, focusing on discrete Morse complexes (on their computation, representation, and simplification). In the last module, we will discuss the representation and the relevance of topological information retrieved by persistent homology by describing how such descriptor can support machine learning algorithms through the definition of new feature vectors and kernels.

Course content
Introduction to computational topology; Topological tools; Topology-based data visualization; Persistence-based data analysis

Gunnar Calsson: Topology and Data. Bulletin of the American Mathematical Society 46(2): 255-308 (2009)
Herbert Edelsbrunner, John Harer: Computational Topology: an Introduction. American Mathematical Society (2010)
Leila De Floriani, Ulderico Fugacci, Federico Iuricich, Paola Magillo: Morse complexes for shape segmentation and homological analysis: discrete models and algorithms. Comput. Graph. Forum 34(2): 761-785 (2015)
Lidija Comic, Leila De Floriani, Paola Magillo, Federico Iuricich: Morphological Modeling of Terrains and Volume Data. Springer Briefs in Computer Science, Springer 2014, ISBN 978-1-4939-2148-5, pp. 1-116
Christian Heine, Heike Leitte, Mario Hlawitschka, Federico Iuricich, Leila De Floriani, Gerik Scheuermann, Hans Hagen, Christoph Garth: A Survey of Topology-based Methods in Visualization. Comput. Graph. Forum 35(3): 643-667 (2016)
Julien Tierny: Topological Data Analysis for Scientific Visualization. Springer 2018, ISBN 978-3-319-71507-0

Industrial Analytics: Theory and Practice of Learning from Data 

Davide Anguita, Luca Oneto
Dates: July 16-20, 9:00-13:00


This course aims at providing an introductory and unifying  view of information extraction and model building  from data, as addressed by many research fields like Data Mining, Statistics, Computational Intelligence,  Machine Learning, and Pattern Recognition. The course will  present an overview of the theoretical  background of learning from data, including the most used algorithms in the field, as well as practical  applications in several areas, including industry (e.g. transportation, naval engineering, etc.), and business (e.g. demand planning, market basket analysis).

Program:  Data, information and models: induction, deduction and transduction, Statistical inference: Bayesians vs. Frequentists, Exploratory Data Analysis, Problem taxonomy: Classification, Regression, Clustering, Novelty Detection, Ranking.  Bayes, k-NN,k-means, Perceptron, Model selection and error estimation: out- of-sample techniques, From linear to nonlinear models: Trees and Forests, Neural Networks, Kernelization and Support  Vector Machines, Advances in model selection and error estimation: Implementations and computational issues. Applications for industry and business. 

Programming Complex Heterogeneous Parallel Systems

Instructors: Clematis, D'Agostino, Danovaro, Galizia (CNR)
Keywords: Parallel Computing, Heterogeneous Architectures
Dates:  After September 15, 2018 (to be defined)



You are here: Home Activity Overview PhD Courses