Ph.D. Program
Academic Year (2020/2021)
Immigration Courses
Pillar
Title
Instructor
Syllabus
ALG
Design and Analysis of Algorithms
Michele Flammini, Ruben Becker, Bojana Kodric
Basic notions of algorithms and complexity; Divide-and-Conquer; Dynamic Programming; Basic data structures: heaps, hash tables; Greedy; Local Search; Network Flow; All-pairs Shortest Paths; NP-complete problems and intractability; PSPACE
FM
Introduction to Formal Methods
Emilio Tuosto, Omar Inverso, Catia Trubiani
Basics on formal models of (concurrent) computations, operational semantics and (labelled) transition systems, regular expressions, basic process algebras. Preliminary concepts of software verification, typical verification flow, common program analysis techniques, decision procedures. Basic concepts of software modelling and analysis with stochastic processes, discrete-time markov processes, and petri nets.
SE
Software, Systems and Services
Ludovico Iovino, Martina De Sanctis
Basic concepts of software development paradigms, application domains, the software life cycle, design of software systems and modeling, software archtiectures. The course also provide some basic knowledge of the tools used to generate software programs from models.
*
How to - Introductory Lectures
Catia Trubiani
How to write a paper. How to give a scientific talk. How to referee a scientific paper.
Core Courses
Pillar
Title
Instructor
Syllabus
SE
Software Testing
Antonella Bertolino
General concepts and techniques of software testing. Main approaches for dependability and security validation. Most interesting research challenges in software testing.
SE
Program Analysis
Paola Inverardi
This course analyses different kind of analysis for software: static, dynamic and hybrid. Introduce the theoretical principles of static analysis and present some of the approaches and tools used in software practice
SE
Software Quality
Ludovico Iovino, Lorenzo Bettini and Patrizio Pelliccione
Software Quality is defined as a field of study and practice that describes the desirable attributes of software products. In this course we explore some of the methodologies to keep track, monitor and improve software quality with specific application to development and modeling.
SE
Introduction to Programming and Data Processing in Python
Andrea Vandin and Daniele Licari
This course introduces students to data processing in Python. It first builds the necessary toolset by introducing popular Python libraries for data manipulation/visualization (NumPy, Pandas), applied to simple applications. The toolset is then applied to a more complex case study on the classification of benign and malignant breast cancer. The course concludes presenting KNIME, a popular python-integrated workflow-based language for data analysis.
FM
Formal Behavioural Specifications
Emilio Tuosto
Basics on process algebras, Basics of behavioural types: the dyadic case, Correctness-by-construction, The Multi-party case, Choreographic approaches, Practical repercussions
FM
Model Checking and Software Verification
Omar Inverso, Emilio Tuosto
Modelling of reactive systems, review of the model checking approach, temporal logics (LTL, CTL, and CTL*), safety and liveness properties of reactive systems, fairness conditions.
Context-bounded analysis and bounded model checking of concurrent programs. Decision procedures and propositional satisfiability.
FM
Formal Methods at Work
Catia Trubiani, Riccardo Pinciroli
Modelling, Analysis, and Testing of Probabilistic Systems: Stochastic Process Algebras, Markov Decision Processes, Timed Automata, Queueing Networks
FM
Modelling and Verification of Reactive Systems
Emilio Tuosto
Principles of Parallel and Concurrent Programming, Introduction to Concurrency, Paradigms for Parallel Programming, Interference and Atomicity, Mutual Exclusion, Semaphores, Monitors, Elements of Distributed Programming, Concurrent Programming Languages
ALG
Approximation Algorithms
Gianlorenzo D'Angelo
Introduction to linear programming; the set cover problem; greedy algorithms and local search; rounding data and dynamic programming; deterministic rounding of linear programs; random sampling and randomized rounding of linear programs; the primal-dual method; techniques to prove the hardness of approximation
ALG
Algorithmic Game Theory
Michele Flammini
Algorithmic Game Theory (Equilibria: dominant versus Nash equilibria; Computational issues of equilibria); Congestion Games; Mechanism design; Computational social choice
ALG
Algorithm Engineering
Gianlorenzo D'Angelo and Pierluigi Crescenzi
Experimental design; measures in algorithmic experiments; algorithm and code tuning; test environment; data analysis
ALG
Randomized Methods in Computer Science
Ruben Becker, Bojana Kodric
Basics in probability theory; coupon collector and contention resolution; Yao’s principle and the secretary problem; the probabilistic method; randomized min-cut and quicksort; Chernoff bounds; random graphs; smoothed analysis
ALG
Graph Mining
Pierluigi Crescenzi
Graph topological measures. Conditional lower bounds. Heuristics for huge real-world graphs. Probabilistic analysis of some heuristics.
Advanced Courses
Title
Instructor
Building Domain Specific Languages
Dimitris Kolovos (University of York)
Graph Transformations - Theory and Practice
Adrian Rutle (Western University of Applied Science)
Probabilistic Model Checking
Joost-Pieter Katoen (RWTH Aachen University, Germany)
Abstract Interpretation and Applications Beyond the Beaten Track
Caterina Urban (INRIA, France)
Selected topics in Graph Theory and Algorithms
Vahan Mkrtchyan
Strategic Aspects of Distributed Ledger Technologies
Paolo Serafino
A Short Introduction to Parameterized Complexity
Alessandro Aloisio, Clemens Grabmayer
Selected Topics in Approximation and Online Algorithms
Cosimo Vinci
Algorithmic Aspects of Neuroscience
Emanuele Natale
An introduction to self-adaptive systems
Martina De Sanctis
Engineering Cyber Physical Systems
Laura Nenzi (University of Trieste)
Software Engineering and Artificial Intelligence (Details)
Patrizio Pelliccione
Interdisciplinary Courses
Basic Elements of Cybersecurity (10 Hours)
Rocco De Nicola (Scuola IMT Lucca)
Basic knowledge of the risks run when surfing the web and of the main tools for defending assets and privacy.
Abstract:
This is an introductory course that would be beneficial for any student and does not assume any prior technical knowledge. We will discuss cybersecurity in general and present techniques and tools for navigating securely and for defending assets and privacy.
Systematic Literature Review (4 Hours)
Antonia Bertolino (ISTI-CNR, Pisa)
How to do systematic literature review.