Rigorous Modelling Methods for Software Engineering
Lecturer: Egon Boerger
Period (confirmed): from February 2nd to February 25th, 2021
Schedule: Tuesday and Thursday from 10am to 12pm
The course introduces a rigorous method to model software-intensive systems at different levels of abstraction which can be related by provably correct refinement statements that faithfully link application domain to programmers’system views. The used technical concept is that of Abstract State Machines, a form of pseudo-code which extends finite state machines to programs working on abstract data types at any level of abstraction and can be given a simple precise semantics. The method is illustrated by modeling real-life case studies in various domains: control systems, Java/C# program interpreter, thread handling, programming patterns, process networks (distributed network algorithms, routing protocols in mobile ad hoc networks (AODV), weak shared memory db management (Cassandra)), business processes (WebServiceProvider, SardexBusinessLogic), concurrent systems. Participants will be invited (and supported) to try out their own models for concepts they are working on.
Basic Principles of Security and Blockchain
Lecturers: Laura Ricci, Fabrizio Baiardi
Period (confirmed): from February 8th to February 19th, 2021
Blockchain technology has a great potential to radically change our socio-economical systems by guaranteeing secure transactions between untrusted entities, reducing their cost and simplifying many processes. Such a technology is going to be exploited in many different areas like IoT, social networking, health care, electronic voting and so on. Even if several applications are already leveraging its disruptive potentials, the basic principles of this technology deserve further research. Furthermore, this technology is strictly related to the general theme of the security of information system. For this reason, the course will present, in the first part, some basic concepts of information system security, then it will discuss the basic pillars of blockchains, like consensus and game theory. The first 6 hours will deal with Security issues: ICT Risk Assessment, Adversary Simulation, MITRE Attack Matrix, Offensive Security and Attack Platform, ICT Resilience. The other 10 hours will deal with Blockchain issues: Fault Tolerance & Paxos, Distributed Consensus: basic definitions, Byzantine Agreement, Eventual Consistency, Game Theory, Distributed storage, Blockchain: consensus models.
Design Thinking for Scientists
Lecturers: Daniele Mazzei
Period (confirmed): from March 1st to March 19th, 2021
Design Thinking is an iterative process in which we seek to understand the user, challenge assumptions, and redefine problems in an attempt to identify alternative strategies and solutions that might not be instantly apparent with our initial level of understanding. Design Thinking provides a solution-based approach to solving problems. It is a way of thinking and working as well as a collection of hands-on methods. Design Thinking is not an exclusive property of designers all great innovators in literature, art, music, science, engineering, and business have practiced it. The course will introduce to design thingin and human centered design approaches giving PhD students an overall view on how this methods can be applied to the research context.
Algorithmic Tools for Massive Network Analytics
Lecturers: Roberto Grossi, Paolo Boldi (UNIMI), Alessio Conte, Andrea Marino (UNIFI)
Period (to be confirmed): March 2021
Many complex real-world phenomena are naturally modeled as networks: social interactions, internet/web, knowledge bases, power grids, financial transactions, biological pathways, to name a few. Network analysis aims at finding interesting properties hidden in the linked structure. This analysis is challenging from a computational point of view due to the sheer size of the networks and the combinatorial nature of the corresponding graph problems. These lectures will present some powerful combinatorial algorithms for graphs and provide an algorithmic toolkit to store, analyze and extract meaningful patterns from large-scale networks.
Lecturers: Ugo Montanari
Period (confirmed): from February 15th to May 21st, 2021
(Note that this course is open to Ph.D students but it is actually a MS course. It therefore consists of aroung 48 hours of classes spread from mid February till mid of May, with only 4 hours of classes per week.)
Students learn the essential properties of some widely employed models of computation for higher order, concurrency, interaction, mobility. Algebraic semantics and elementary category theory are employed.
Program analysis for verification
Lecturers: Letterio Galletta (IMT), Pierpaolo Degano
Period (to be confirmed): April – May 2021
This course provides an overview of advanced techniques for analyzing software and for checking their properties. The lectures will present the theory underlying various techniques as well as demonstrations of software tools that implement them. Moreover, the lecture will illustrate how advanced static analysis techniques are applied in the field of computer security, Internet of Things, smart contract and safe AI. The course will mix theory and practice; students will formalize analyses and prove them correct, will implement analyzers from scratch, and also will experience state of the art static analysis tools.
Programming Tools and Techniques in the Pervasive Parallelism Era
Lecturers: Marco Danelutto, Patrizio Dazzi (CNR ISTI)
Period (to be confirmed): May 2021
The course covers techniques and tools (already existing or that are in the process of being moved to mainstream) suitable to support the implementation of efficient parallel/distributed applications targeting small scale parallel systems as well as larger scale parallel and distributed systems, possibly equipped with different kind of accelerators. The course follows a methodological approach to provide a homogeneous overview of classical tools and techniques as well as of new tools and techniques specifically developed for new, emerging architectures and applicative domains. Perspectives in the direction of reconfigurable coprocessors and domain-specific architectures will also be covered.
Monte Carlo methods and sampling for computing
Lecturers: Francesco Banterle (CNR)
Period (to be confirmed): June 2021
This course introduces students to Monte Carlo methods and sampling techniques with a focus on visual computing. These are crucial to accelerating the computations of a variety of computational simulations where we need to draw high-quality samples or to integrate a complex multi-dimensional function such as physically-based rendering for computing the radiance of buildings, estimating the price of options, or how epidemics spread out. At the end of this course, students will have both theoretical and practical tools that they can apply to a variety of problems to achieve high-quality solutions. During the course, students will see and study successful examples of this beautiful theory to visual computing; e.g., visual processing, computational finance and biology.
Algorithmic Game Theory
Lecturers: Giancarlo Bigi
Period (to be confirmed): September – October 2021
The lectures aims at introducing the main paradigms of game theory within an algorithmic perspective in order to analyse the behaviour of multi-agent systems and phenomena. Suitable mathematical models and tools will be provided to help the understanding of inner mechanisms of competition and cooperation, threads and promises. A few application to problems from different areas are provided upon the students’ interests (for instance, computational economics, traffic and social networks, security, distributed computing and machine learning). A critical analysis of the power and limitations of game theory is addressed as well.
Linear algebra, non-negative matrices and their applications
Lecturers: Gianna Del Corso, Federico Poloni
Period (to be confirmed): November – December 2021
In this course we will present some selected topics and applications in linear algebra and matrix theory. They will include: Non-negative matrices, Markov chains, and Markov chain models; Non-negative matrix factorization (NMF), rank-revealing factorizations like SVD and CUR, with applications to cluster and feature detection; Linear algebra-based centrality measures for complex networks: Pagerank, Estrada and Katz centrality.
Lecturers: Fabrizio Luccio, Massimo D’Elia, Patrizia Gianni, Fabio Gadducci, Simone Montangero (UNIPD).
Period (to be confirmed): To be scheduled in 2021
Eight lectures of two hours each, presented by scholars of different disciplines and directed mainly to Ph.D. students of Computer Science. An introduction of the whole course will be given by Fabrizio Luccio, including an overview of the foreseeable structure of a quantum computer. Then a set of lectures will be given by Simone Montangero and Massimo D’Elia on the principles of quantum mechanics and their applications in quantum computation and information. Patrizia Gianni will present Shor’s and Grover’s quantum algorithms and their extensions. Fabio Gadducci will discuss formal methods for quantum processes, including category theory and process representation.
Under the guidance of one of the lecturers, each student will select some research material to be thoroughly studied and reported in a final discussion, possibly with the submission of a written report.