{"id":889,"date":"2019-09-15T11:49:19","date_gmt":"2019-09-15T09:49:19","guid":{"rendered":"https:\/\/dottorato.di.unipi.it\/phd-courses-2020\/"},"modified":"2021-11-19T19:43:24","modified_gmt":"2021-11-19T18:43:24","slug":"phd-courses-of-previous-years","status":"publish","type":"page","link":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/","title":{"rendered":"Phd courses of previous academic years"},"content":{"rendered":"<h2>a.y. 2020\/2021<\/h2>\n<h5>Rigorous Modelling Methods for Software Engineering<\/h5>\n<p><strong style=\"background-color: initial\">Lecturer:\u00a0<\/strong> Egon Boerger<\/p>\n<p style=\"text-align: justify\">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\u2019system 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.<\/p>\n<h5><a href=\"http:\/\/pages.di.unipi.it\/montanari\/FOC.html\"><strong>Foundation of Computing<\/strong><\/a><\/h5>\n<p><strong>Lecturers:\u00a0<\/strong> Ugo Montanari<\/p>\n<p><em>(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.)<\/em><\/p>\n<p>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.<\/p>\n<h5>Basic Principles of Security and Blockchain<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong> Laura Ricci, Fabrizio Baiardi<\/p>\n<p class=\"p1\" style=\"text-align: justify\">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 &amp; Paxos, Distributed Consensus: basic definitions, Byzantine Agreement, Eventual Consistency, Game Theory, Distributed storage, Blockchain: consensus models.<\/p>\n<h5>Design Thinking for Scientists<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong> Daniele Mazzei<\/p>\n<p style=\"text-align: justify\">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\u00a0and human centered design approaches giving PhD students an overall view on how this methods can be applied to the research context.<\/p>\n<h5><a href=\"https:\/\/elearning.di.unipi.it\/enrol\/index.php?id=227\">Reinforcement Learning<\/a><\/h5>\n<p><strong style=\"background-color: initial\">Lecturers:\u00a0<\/strong> Davide Bacciu<\/p>\n<p>The course will introduce students to the fundamentals of reinforcement learning (RL). We will start by introducing RL problem formulation, its core challenges and a survey of consolidated approaches from literature, including dynamic programming, value-function learning and policy learning. We will then cover model-based RL and exploration strategies. Finally, the course will discuss more recent reinforcement learning models that combine RL with deep learning techniques.<\/p>\n<p>A student successfully completing the course should be able to lay down the key aspects differentiating RL from other machine learning approaches. Given an application, the student should be able to determine (i) if it can be adequately formulated as a RL problem;\u00a0 (ii) be able to formalise it as such and (iii) identify a set of techniques best suited to solve the task, together with the software tools to implement the solution.<\/p>\n<h5>Program analysis for verification<\/h5>\n<p><strong style=\"background-color: initial\">Lecturers:\u00a0<\/strong> Letterio Galletta (IMT), Pierpaolo Degano<\/p>\n<p class=\"p1\" style=\"text-align: justify\">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.<\/p>\n<h5>Programming Tools and Techniques in the Pervasive Parallelism Era<\/h5>\n<p><strong style=\"background-color: initial\">Lecturers:\u00a0<\/strong> Marco Danelutto, Patrizio Dazzi (CNR ISTI)<\/p>\n<p class=\"p1\" style=\"text-align: justify\">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,\u00a0emerging architectures and applicative domains. Perspectives in the direction of reconfigurable coprocessors and domain-specific architectures will also be covered.<\/p>\n<h5>Quantum Computing<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong> Fabrizio Luccio, Simone Montangero (UNIPD), Patrizia Gianni, Roberto Bruni, Fabio Gadducci<\/p>\n<p style=\"text-align: justify\">Nine lectures of two hours each, presented by scholars of different disciplines and directed mainly to Ph.D. students of Computer Science. Fabrizio Luccio introduce the whole course, with a computer scientist\u2019s overview of quantum computing. Then a set of lectures will be given by Simone Montangero on the principles of quantum mechanics and their applications in quantum computation and information. Patrizia Gianni will present Shor\u2019s and Grover\u2019s quantum algorithms and their extensions. Finally, Roberto Bruni and Fabio Gadducci will discuss Quantum programming languages.<\/p>\n<p>Final evaluation of the participants: Study and written presentation of scientific material, to be agreed with one of the lecturers.<\/p>\n<h5>Algorithmic Tools for Massive Network Analytics<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong> Roberto Grossi, Paolo Boldi (UNIMI), Alessio Conte, Andrea Marino (UNIFI), Giuseppe Italiano (LUISS), Giordano Da Lozzo (Roma Tre), Fabio Vandin (UNIPD)<\/p>\n<p class=\"p1\" style=\"text-align: justify\">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.<\/p>\n<h5>Monte Carlo methods and sampling for computing<\/h5>\n<p><strong style=\"background-color: initial\">Lecturers:\u00a0<\/strong> Francesco Banterle (CNR)<\/p>\n<p class=\"p1\" style=\"text-align: justify\">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.<\/p>\n<h5>Algorithmic Game Theory<\/h5>\n<p><strong>Lecturers:<\/strong> Giancarlo Bigi<\/p>\n<p class=\"p1\" style=\"text-align: justify\">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&#8217; 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.<\/p>\n<h2>a.y. 2019\/2020<\/h2>\n<h5>Cyber-Physical Systems and Cloud for Smart Industry<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong>Daniele Mazzei (UNIPI)<\/p>\n<p>IOT, Industrial IOT, sensors and edge gateway are disruptively changing our factories connecting machines, people and apparatus to cloud architectures aimed at supporting the management in the improvement of production efficiency. The course will explore different Industrial technologies highlighting the architectural paradigms and strategy used for the design, development, deploy and maintenance of smart factory.<\/p>\n<h5>Design-by-Contract and Behavioral Types<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong>\u00a0Roberto Bruni (UNIPI), Hernan Melgratti (University of Buenos Aires)<\/p>\n<p>The design-by-contract approach promotes the usage of executable specifications to describe the mutual obligations that regulate the interaction between different modules. Contracts are embedded in code and checked at runtime to help developers identify faulty modules. Behavioral types instead provide a description of the interaction aspects of a program and are used to specify the communication protocols that regulate the communication among distributed components. In this course we will present the current approaches for combining contracts and behavioral types. We will cover the following topics: Design-by-Contract approach (DbC), Higher-order contracts (Findler &amp; Felleisen), Binary Session Types, Chaperone contracts for session types, Multiparty Session Types (MST), DbC for MST, Dependent Session Types.<\/p>\n<h5>Theory of Computing<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Ugo Montanari (UNIPI)<\/p>\n<p>Some basic properties of models of computation are studied, like operational and abstract semantics, typing, higher order, concurrency, interaction. Algebraic semantics and elementary category theory are employed, but no prerequisites are required except for some elementary knowledge of logic and algebra.<\/p>\n<h5>Shape Analysis and Geometry Processing<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong>\u00a0Paolo Cignoni (CNR ISTI), Fabio Ganovelli (CNR ISTI), et alii<\/p>\n<p>The course deals with 3D shape analysis and geometric processing, which are key topics in Computer Graphics, Vision and Digital Fabrication. The course introduces well established and recent geometric concepts and tools (curvature and geodesics, spectral methods, computational topology, topological persistence), emphasizing the discrete and computational viewpoint. In the last decades these topics have attracted the attention of many researchers thanks to the fast-paced growth of the research in 3D, pushed by the technological advances in gaming, autonomous navigation, biomedical, digital cultural heritage, 3D printing, etc. The aim of the course is to let the math student appreciate how geometry is successfully used in applied sciences; and to provide the computer science student the mathematical basis needed to efficiently tackle open issues in such a lively research field.Computer Science PhD students are suggested to take the module of 16h concerning more on the algorithmic aspects, just talk to the lecturers.<\/p>\n<h5>Reinforcement Learning<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Davide Bacciu (UNIPI)<\/p>\n<p>The course will introduce students to the fundamentals of reinforcement learning (RL). The course will start by recalling the machine learning and statistics fundamentals needed to fully understand the specifics of RL. Then, it will introduce RL problem formulation, its core challenges and a survey of consolidated approaches from literature. Finally, the course will cover more recent reinforcement learning models that combine RL with deep learning techniques.<\/p>\n<p>Space will be devoted to present RL applications in areas that are relevant for students of industrial and information engineering, such as robotics, pattern recognition, life sciences, material sciences, signal processing, computer vision and natural language processing. \u00a0The course will leverage a combination of theoretical and applicative lectures.<\/p>\n<p>A student successfully completing the course should be able to lay down the key aspects differentiating RL from other machine learning approaches. Given an application, the student should be able to determine (i) if it can be adequately formulated as a RL problem;\u00a0 (ii) be able to formalise it as such and (iii) identify a set of techniques best suited to solve the task, together with the software tools to implement the solution.<\/p>\n<h5>Programming Tools and Techniques in the Pervasive Parallelism Era<\/h5>\n<p><strong>Lecturers:\u00a0<\/strong>\u00a0Marco Danelutto (UNIPI), Patrizio Dazzi (CNR ISTI)<\/p>\n<p>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,\u00a0emerging architectures and applicative domains. Perspectives in the direction of reconfigurable coprocessors and domain-specific architectures will also be covered.<\/p>\n<hr \/>\n<h2>a.y. 2018\/2019<\/h2>\n<h5>Matrix computations: a quick overview and some applications<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Gianna Del Corso (UniPI), Federico Poloni (UniPI)<\/p>\n<p>We overview some useful techniques of numerical linear algebra with several applications to data analysis. The theoretical aspects will be complemented with a few examples from applications. Theory: review of singular value decomposition and other factorizations, Kronecker products, Fast Fourier transform, nonnegative matrix factorizations, nonnegative matrices and M-matrices. Applications: image deblurring \/ denoising, vector space model, latent semantic indexing, clustering, Pagerank \/ invariant measures of Markov chains, Centrality measures.<\/p>\n<h5>Genomic data analysis with applications<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Ugo Borello (Biologia, UniPI), Filippo Geraci (IIT CNR)<\/p>\n<p>The goal of the course is to introduce the main framework for computational analysis of genomic data: from differential analysis to integration of omics data and biological networks.<\/p>\n<p>We focus on data generated by Next Generation Sequencing (NGS) technology and we discuss the impact of these technologies on biology and bioinformatics.<\/p>\n<p>NGS data analysis is the first step to differential analysis, which is the task of measuring a certain (often large) number of variables in two different populations of biological samples and deriving the subset of variables that are statistically different. We will see several techniques and applications of differential analysis: from differential expression to the discovery of biomarkers. To this end, we will also review the basics of clustering, classification and feature selection.<\/p>\n<p>Subsequently, we will introduce the problem of multi-omics data analysis, its advantages and challenges. We will focus on the integration of data coming from different technologies reviewing different state-of-the-art methods.<\/p>\n<p>In the last part of the course, we will introduce the network structure of biological data. We will show how some problems in graph theory are closely related to biological problems. For example, we will see how the problem of finding protein complexes can be easily mapped into the problem of finding communities in a graph.<\/p>\n<h5>Polyhedral Combinatorics<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Laura Galli (UniPI), Adam Letchford (University of Lancaster, UK)<\/p>\n<p>Many important optimization problems arising in practical applications are discrete or combinatorial.\u00a0 Indeed, such problems arise in fields as diverse as operational research, statistics, computer science, engineering and the physical sciences.\u00a0 Although most combinatorial problems are theoretically intractable (\u201cNP-hard\u201d), algorithms and software have improved dramatically during the past couple of decades, to the point where real-life instances with thousands of variables and constraints can now be solved to proven optimality or near-optimality.\u00a0 One of the key components of this success is the study of certain convex polyhedra.\u00a0 The study of such polyhedra is known as polyhedral combinatorics.\u00a0 This course gives an introduction to this fascinating topic, covering theory, algorithms, applications and software. Topics covered: \u2013 Recap on Combinatorial Optimisation \u2013 Modelling Problems as Integer Programs \u2013 Classical Solution Approaches \u2013 Fundamentals of the Polyhedral Approach \u2013 Some Simple Polyhedra \u2013 Polyhedra Associated with NP-Hard Problems \u2013 Algorithms and Implementation \u2013 Applications<\/p>\n<h5>Data Stream Processing from the Parallelism Perspective<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Gabriele Mencagli (UniPI),\u00a0Matteo Andreozzi, ARM<\/p>\n<p>An ever-growing number of devices are capable of sensing the world by producing huge flows (data streams) of information regarding the users and the environment. A large set of applications need efficient processing techniques to extract insights and complex knowledge from such a massive and transient data deluge. Furthermore, to keep the processing in real-time, existing systems must expose parallel features to adapt the algorithms and the way the processing is performed to unpredictable and time-varying input rates and workloads.<\/p>\n<p>The computing paradigm enabling the processing in those scenarios is called Data Stream Processing, which comprises in its most general meaning other closely-related paradigms like Event Processing and Complex Event Processing. The course aims at giving a solid background on this research field, with an introduction on the theory behind stream processing, an overview of the most famous Stream Processing Systems (e.g., Apache Storm, Apache Flink and Spark Streaming) and the most recent results achieved by the scientific community in terms of optimizations, cost models and patterns. Furthermore, in the final part of the course, the FastFlow and WindFlow parallel libraries will be described in details, by outline the research advancements for ultra-low latency streaming systems targeting multi-core environments and C++ programming.<\/p>\n<h5>Theory and Practice of Learning From Data<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>\u00a0Luca Oneto (UniPI)<\/p>\n<p>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\u00a0Pattern 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 industrial areas such as transportation,\u00a0manufacturing, etc.<\/p>\n<hr \/>\n<h2>a.y. 2017\/2018<\/h2>\n<h5>An introduction to Deep Learning<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Antonio Gull\u00ec (Google)<\/p>\n<p>The goal of this course is to provide an handson introduction to Deep Learning. The traditional concepts used in neural networks are introduced, together with modern convolutional networks, generative adversarial networks, recurrent networks, and autoencoders. In addition, we will look at Reinforcement Learning and its application \u00a0to AI Game Playing, a popular direction of research and application of neural networks. All the examples will be coded in Keras a python high-level framework running on the top of Google\u2019s Tensorflow, Microsoft\u2019s CNTK, Amazon\u2019s MLXnet, and University of Montreal\u2019s theano.<\/p>\n<h5>Graph Mining Algorithms<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Andrea Marino (UniPI)<\/p>\n<p>In this course we will focus on the computation of several graph topological measures, for which polynomial-time algorithms are available and in \u201cpractice\u201d are not useful, due to the huge size of the networks to be analysed. We will consider efficient algorithms for the following problems: computing diameter, distance distribution, average distance, and\u00a0centrality measures,\u00a0counting triangles and probabilistic counting in general, clustering and\u00a0graph pattern mining.<\/p>\n<h5>Shape Analysis and Geometric Processing<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Paolo Cignoni, Fabio Ganovelli, Daniela Giorgi, Maria Antonietta Pascali (ISTI \u2013 CNR)<\/p>\n<p>The course deals with 3D shape analysis and geometric processing, which are key topics in Computer Graphics, Vision and Digital Fabrication. The course introduces well-established and recent geometric concepts and tools (curvature and geodesics, spectral methods, computational topology, topological persistence), emphasizing the discrete and computational viewpoint. In the last decades these topics have attracted the attention of many researchers thanks to the fast-paced growth of the research in 3D, pushed by the technological advances in gaming, autonomous navigation, biomedical, digital cultural heritage, 3D printing, etc. The aim of the course is to let the math student appreciate how geometry is successfully used in applied sciences; and to provide the computer science student the mathematical basis needed to efficiently tackle open issues in such a lively research field.<\/p>\n<h5>Skills Boosting for New (Research) Horizons<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Paolo Ferragina (UniPI),\u00a0Michele Padrone (UniPI),\u00a0Davide Morelli (BioBeats),\u00a0Flavio Tosi (Business Exploration),Camilla Van den Boom (Eindhoven University), Nicola Redi (Venture Factory), Ray Garcia (Buyont Capital, NY)<\/p>\n<p>This course aims to help PhDs in Computer Science to scale and enrich their technical and scientific abilities with experiences, (soft) skills and networking useful for your future either as a researcher, or as an entrepreneur, or as a chief software engineer, or as the CTO of a successful company ! It is indeed very well known that the best talents are found at the\u00a0<em>intersection<\/em>\u00a0of community\/networking, skills, right mindset (good attitude and self-motivated) and technical competency. The course is intended to have PhD students to ACT on their own and be able to evaluate their scientific achievements from other perspectives, find new avenues for grant funds for research and developing their ideas.<\/p>\n<h5>Formal Methods for Program Verification<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Massimo Bartoletti (UniCa), Pierpaolo Degano (UniPI), Dino Di Stefano (Facebook), Gianluigi Ferrari (UniPI), Letterio Galletta (UniPi)<\/p>\n<p>We will focus on a repertoire of formal techniques that prevent applications and systems to misbehave.<br \/>\nThis issue is particularly relevant because now-a-days software is everywhere. Thus it has to be designed to properly work in open, highly mutable environments of different nature, including cyber-physical ones.Software must then come with guarantees on its behaviour, robustness, reliablity, security, scalability, and efficiency. Precise guarantees can only be offered by a formal proof of software correctness, carried on a sound abstract model of the system in hand. We will also present and possibly experiment with mechanical tools, used in industries and academia, which support program verification.<\/p>\n<h5>Distributed Systems Security<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Roberto di Pietro (College of Science and Engineering, Dhoa-Quatar)<\/p>\n<p>This course focuses on fundamental and advanced concepts in Distributed Systems, addressing their foundations, current technologies, and security aspects. Topics include, but are not limited to, distributed hash tables (peer-to-peer systems), failure detectors, synchronization, election, distributed agreement, consensus, gossiping, replication, key-value stores, NoSQL, blockchain technology. These topics are discussed in the context of real-life and deployed systems such as clouds and datacenters, databases, peer to peer systems, clusters, cryptocurrencies.<\/p>\n<h5>Modeling methods<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Egon Boerger (UniPI)<\/p>\n<p>The course explains two\u00a0major methods for design and analysis of\u00a0 computational systems, known as ASM (Abstract State Machines)\u00a0and Event-B method. The focus will be on the refinement method which permits to link abstract models\u00a0(specifications) to code in a provably correct way.<\/p>\n<hr \/>\n<h2>a.y. 2016\/2017<\/h2>\n<h5>Introduction to Network Science<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Prof. Janos Kertesz (Central European University, Budapest)<\/p>\n<p>Syllabus:\u00a0Introduction: Complex systems and complex networks. Percolation model, scale invariance. Basic notions of graph theory. Erd\u0151s-R\u00e9nyi graphs, Watts Strogatz model, configuration model, network growth models. Weighted and signed networks. Motifs and modules. Error tolerance and vulnerability against intentional attacks. Spreading problems.<\/p>\n<h5>Categories and Quantum Informatics<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Prof.Chris Heunen (LFCS Univeristy of Edinburgh)<\/p>\n<p>The course begins by introducing the idea behind category theory and the breadth of its scope. Why would it be a good idea to abstract away from specific hard-coded set-theoretic structures, and have compositional denotational semantics, in general? Illustrations from functional programming and categorical methods in logic are given.<\/p>\n<p>We then focus more specifically on monoidal categories. Specific attention is paid to the graphical calculus, which makes the topic visually apparent. The student learns to graphically manipulate algebraic objects such as monoids and Frobenius structures. This allows perfectly rigorous proofs of correctness, and shows the information flow of a protocol that is often hidden behind superfluous details.<\/p>\n<p>Throughout the course, the abstract material is linked to quantum informatics. We will categorically model notions typically thought to belong to quantum theory, such as entanglement, no-cloning, teleportation, and complementarity. But it will turn out some of these notions also make perfect sense in other settings. For example, the very same categorical description of quantum teleportation also describes classical encryption with a one-time pad. We identify characteristics of classical and quantum information, aiming to equip students to choose the right tools and techniques for future problems they may encounter.<\/p>\n<h5>One day of Distributed Algorithms and Graph Mining<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Pierre Fraignaud, IRIF Universit\u00e9 Paris Diderot \u2013 Paris 7<\/p>\n<h5>Design and analysis of secure systems<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Joshua Guttman, Worcester Polytechnic Institute<\/p>\n<p>First part. The focus will be on the analysis,\u00a0the design, and the refinement of cryptographic\u00a0protocols.<\/p>\n<p>Second part. The focus will be on information\u00a0flow and non-interference, I want to\u00a0talk about the semantics of limited\u00a0information flow, both in a non\u00a0quantitative and a quantitative\u00a0context, explain how these can be matched with a natural model for\u00a0 distributed systems, and how this\u00a0promotes a compositional view of\u00a0secure system development and\u00a0refinement.\u00a0 I\u2019d also like to indicate\u00a0how the same ideas may apply to\u00a0software via object capability models.<\/p>\n<h5>Distributed Computing and Large Graph Mining<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Pierre Fraignaud, IRIF Universit\u00e9 Paris Diderot \u2013 Paris 7 e PierLuigi Crescenzi<\/p>\n<p>Distributed computing is a field of computer science that studies distributed systems, i.e., systems in which \u00a0a collection of autonomous computing entities coordinate their actions via some communication medium. The objective of the first part of this course is to introduce the main techniques of algorithm design and analysis for distributed computing, enabling the computing entities aiming at collectively solve a common task. This part of the course will focus on the main computing models, capturing different aspects of distributed computing, including network computing, asynchrony, fault-tolerance, etc. For each model, the course will present the main techniques for (deterministic and probabilistic) algorithm design, and for deriving lower bounds and impossibility results.<\/p>\n<p>In the second part of the course, we will take a graph mining roundtrip, from theory to practice and back. In particular, we will focus on the computation of several graph topological measures, for which polynomial-time algorithms are available that in \u201cpractice\u201d are not useful, due to the huge size of the networks to be analysed. Switching to \u201ctheory\u201d, we will show that, unfortunately, for these measures no best algorithm exists (under reasonable complexity theory assumptions). This will lead us back to \u201cpractice\u201d: we will describe heuristics that, in the case of real-world graphs, allow us to compute these measures in linear time. These results will finally motivate our return to \u201ctheory\u201d in order to understand the reason why, in practice, these heuristics work so well.<\/p>\n<h5>The Internet of Everything, Everywhere: Methods and Technologies for Internetworking Land, Air and Sea<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Stefano Basagni, Northeastern Univ. Boston<\/p>\n<p>This course provides an introduction to the latest research directions on methodologies and technologies for the emerging paradigm of the Internet of Things (IoT).<\/p>\n<p>In particular, we will explore networking challenges and solutions for the three main scenarios where key IoT applications are being defined and developed:<\/p>\n<ol>\n<li>Terrestrial networks for IoT, including challenges and trends for smart cities and connected communities;<\/li>\n<li>Multi-modal communications for underwater wireless networkings, and<\/li>\n<li>Flying ad hoc networking: Coordinating drones and other form of mechanical birds.<\/li>\n<\/ol>\n<hr \/>\n<h2>a.y. 2015\/2016<\/h2>\n<h5>Sensor networks, internet of things and smart environments<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Michele Girolami (CNR Pisa), Alexander Kocian (Dipartimento di Informatica), Stefano Chessa (Dipartimento di Informatica)<\/p>\n<ul>\n<li>Wireless sensors: issues and requirements<\/li>\n<li>Architectures and MAC protocols<\/li>\n<li>Localization and routing<\/li>\n<li>Synchronization<\/li>\n<li>Energy harvesting and energy management<\/li>\n<li>Smart environments<\/li>\n<li>ZigBee and Bluetooth<\/li>\n<\/ul>\n<h5>Searching by Similarity on a Very Large Scale<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Giuseppe Amato, CNR Pisa<\/p>\n<ul>\n<li>Foundation of Metric Space Searching\n<ul>\n<li>Distance Searching Problem<\/li>\n<li>Metric Distance Measures<\/li>\n<li>Similarity Queries<\/li>\n<li>Basic Partitioning Principles<\/li>\n<li>Principles of Similarity Query Execution<\/li>\n<li>Policies for avoiding Distance Computations<\/li>\n<li>Metric Space Transformations<\/li>\n<li>Priciples of Approximate Similarity Search<\/li>\n<li>Advanced issues: Statistics, Proximity, Performance Prediction, Tree quality measures<\/li>\n<li>Advanced issues: Choosing reference points<\/li>\n<\/ul>\n<\/li>\n<li>Exact Similarity Search\n<ul>\n<li>Vantage Point Trees<\/li>\n<li>AESA\/LAESA<\/li>\n<li>GNAT<\/li>\n<\/ul>\n<\/li>\n<li>The M-Tree Family\n<ul>\n<li>The M-Tree<\/li>\n<li>Bulk-Loading Algorithm<\/li>\n<li>Multy-Way Insertion Algorithms<\/li>\n<li>The Slim Tree<\/li>\n<li>Slim-Down Algorithm<\/li>\n<li>Pivoting M-Tree<\/li>\n<\/ul>\n<\/li>\n<li>Hash Based Methods\n<ul>\n<li>D-Index<\/li>\n<li>Approximate Similarity Search with M-Tree\n<ul>\n<li>Relative Error Approximation<\/li>\n<li>Good Fraction Approximation<\/li>\n<li>Small Chance Improvement Approximation<\/li>\n<li>Proximity-Based Approximation<\/li>\n<li>PAC Nearest Neighbor Searching<\/li>\n<li>Performance tests<\/li>\n<\/ul>\n<\/li>\n<li>Other Approximate Similarity Search Methods<\/li>\n<li>Permutation Based Methods\n<ul>\n<li>Permutation Spearman Rho<\/li>\n<li>PP-Index<\/li>\n<li>MI-File<\/li>\n<\/ul>\n<\/li>\n<li>Locality Sensitive Hashing (LSH)\n<ul>\n<li>LSH based on p-stable distributions<\/li>\n<li>LSH with Hamming Distance<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>Introduction to process calculi and related type systems<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Ilaria Castellani, Rosario Pugliese<\/p>\n<p>This course aims at introducing, and motivating the use of, some basic formal methods from Concurrency Theory. It is split in two parts. Firstly, some well-known process calculi, e.g. CCS and pi-calculus, are presented together with the most commonly used techniques for defining their operational and observational semantics. Then, many type systems are presented for ensuring different properties of distributed and concurrent processes, such as e.g. correctness of interaction and security.<\/p>\n<h5>Coalgebre, automi e linguaggi nominali ecc<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Bartek Klin<\/p>\n<p>Structural Operational Semantics (SOS) is a simple but powerful formalism for defining transition systems of various kinds, and operations on them. SOS specifications are usually presented as families of inference rules. This presentation is simple and intuitive, but a bit ad-hoc and difficult to generalize. Bialgebras and distributive laws are more abstract and more mathematical notion of well-behaved SOS specification, based on coalgebra as an abstract theory of transition systems.<\/p>\n<p>I will present the basics of the bialgebraic approach to SOS, and a coalgebraic approach to modal logics that can be used to define properties of transition systems. I will then show how to combine both approaches to derive logical distributive laws, a general theory of logical compositionality on SOS-defined systems.<\/p>\n<p>The course will use some basic notions of category theory: categories, functors, natural transformations, and a little bit of monads. I will introduce these notions as needed.<\/p>\n<p>The plan of the course is as follows:<\/p>\n<p>\u2013 Classical SOS theory: labeled transition systems, bisimulations, Hennessy-Milner logic, SOS rules, GSOS and other formats<br \/>\n\u2013 Basics of category theory and coalgebra<br \/>\n\u2013 Coalgebraic modal logic by dual adjunctions<br \/>\n\u2013 Distributive laws, bialgebras, abstract GSOS<br \/>\n\u2013 Logical distributive laws<\/p>\n<h5>Machine Learning Techniques and Selected Applications for Big Data<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Stan Matwin\u00a0(Dalhousie University, Canada)<\/p>\n<p><em>Topics:<\/em><\/p>\n<ol>\n<li>Intro (def, challenges, nosql etc.) \u00a02h<\/li>\n<li>Linear methods 2h<\/li>\n<li>Bayesian Methods 3h<\/li>\n<li>Stream Data Processing: VFDTs 2h<\/li>\n<li>Vizualization: basics, examples 3h<\/li>\n<li>Privacy for Big Data: data summaries (scripts, Bloom filters), ABAC approaches (Acumulo) 3h<\/li>\n<li>Applications: Oceans 2h<\/li>\n<li>Applications: Big Data in the Public Sector 2h<\/li>\n<li>Data tagging challenges for Big Data: crowdsourcing, reCaptcha 1h<\/li>\n<\/ol>\n<hr \/>\n<h2>a.y. 2014\/2015<\/h2>\n<h5>\u00a0Perspectives in parallel programming<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Marco Danelutto, Dipartimento di Informatica<\/p>\n<p>The course will introduce several programming environments used to implement parallel applications on modern parallel architectures. A detailed introduction of the available structured parallel programming environments will be given. Optimization problems relative to different non functional concerns (performance, power management, fault tolerance) will also be described and typical experiences in different applicative domains will be discussed. Overall, the course will give the student a good perspective on the kind of problems to be solved when tackling the efficient programming of (massively) parallel systems as well as a basic knowledge relative to state-of-the-art parallel programming frameworks.<\/p>\n<h5>\u00a0Bayesian Machine Learning<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Guido Sanguinetti, University of Edinburgh<\/p>\n<p>This is a rough summary for the Bayesian Machine Learning course. The main reference is D. Barber\u2019s book, Bayesian Reasoning and Machine Learning; the numbers in brackets refer to Barber\u2019s book unless explicitly stated otherwise.<\/p>\n<h5>Verifiable voting systems and secure protocols: from theory to practice<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Peter Y. A. Ryan, Universit\u00e9 du Luxenbourg<\/p>\n<h5>Coinductive Methods in Computer Science (and beyond)<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Filippo Bonchi and Damien Pous, ENS Lyon<\/p>\n<p>The induction principle is ubiquitous in computer science. For instance it is used to prove properties of programs involving finite data structures, such as natural numbers, lists and trees. For reasoning about concurrent programs or infinite data structures, like streams and infinite trees, one needs a dual principle \u2014 coinduction \u2014 which is the main topic of this course.<br \/>\nThe relevance of coinductive reasoning has been usually associated with bisimilarity, a notion of equivalence that emerged at the end of the seventies in three different fields: non-well founded set theory, modal logics and concurrency theory. In the last years, coinductive methods has been studied in more and more areas of computer science, such as automata and type theory. Perhaps unexpectedly, applications to game theory and economy have been proposed recently.<br \/>\nWe will introduce the coinductive definition and proof principles, several techniques to enhance coinductive proofs, and some algorithms to automatize such proofs. During the course, we will encounter examples stemming from different areas, with particular focus to automata and concurrency theory. If time allows, we will also give an overview to the theory of coalgebras, which is the abstract framework encompassing all these different examples.<\/p>\n<h5>\u00a0High Dynamic Range Imaging: theory and applications<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Francesco Banterle, Visual Computing Laboratory, CNR Pisa<\/p>\n<ul>\n<li>Introduction to modern Imaging \u2013 2 hrs<\/li>\n<li>Introduction to high dynamic range Imaging \u2013 1 hr<\/li>\n<li>Capturing and generating the real-world lighting 4 hrs<\/li>\n<li>Tone mapping HDR images for low dynamic range displays \u2013 4hrs<\/li>\n<li>Tone mapping HDR videos for low dynamic range displays \u2013 2hrs<\/li>\n<li>Inverse Tone mapping \u2013 2hrs<\/li>\n<li>HDR content formats and compression \u2013 2hrs<\/li>\n<li>High dynamic range imaging applications \u2013 4 hrs<\/li>\n<\/ul>\n<h5>\u00a0Searching by Similarity on a Very Large Scale<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Giuseppe Amato, CNR Pisa<\/p>\n<ul>\n<li>Foundation of Metric Space Searching\n<ul>\n<li>Distance Searching Problem<\/li>\n<li>Metric Distance Measures<\/li>\n<li>Similarity Queries<\/li>\n<li>Basic Partitioning Principles<\/li>\n<li>Principles of Similarity Query Execution<\/li>\n<li>Policies for avoiding Distance Computations<\/li>\n<li>Metric Space Transformations<\/li>\n<li>Priciples of Approximate Similarity Search<\/li>\n<li>Advanced issues: Statistics, Proximity, Performance Prediction, Tree quality measures<\/li>\n<li>Advanced issues: Choosing reference points<\/li>\n<\/ul>\n<\/li>\n<li>Exact Similarity Search\n<ul>\n<li>Vantage Point Trees<\/li>\n<li>AESA\/LAESA<\/li>\n<li>GNAT<\/li>\n<\/ul>\n<\/li>\n<li>The M-Tree Family\n<ul>\n<li>The M-Tree<\/li>\n<li>Bulk-Loading Algorithm<\/li>\n<li>Multy-Way Insertion Algorithms<\/li>\n<li>The Slim Tree<\/li>\n<li>Slim-Down Algorithm<\/li>\n<li>Pivoting M-Tree<\/li>\n<\/ul>\n<\/li>\n<li>Hash Based Methods\n<ul>\n<li>D-Index<\/li>\n<li>Approximate Similarity Search with M-Tree\n<ul>\n<li>Relative Error Approximation<\/li>\n<li>Good Fraction Approximation<\/li>\n<li>Small Chance Improvement Approximation<\/li>\n<li>Proximity-Based Approximation<\/li>\n<li>PAC Nearest Neighbor Searching<\/li>\n<li>Performance tests<\/li>\n<\/ul>\n<\/li>\n<li>Other Approximate Similarity Search Methods<\/li>\n<li>Permutation Based Methods\n<ul>\n<li>Permutation Spearman Rho<\/li>\n<li>PP-Index<\/li>\n<li>MI-File<\/li>\n<\/ul>\n<\/li>\n<li>Locality Sensitive Hashing (LSH)\n<ul>\n<li>LSH based on p-stable distributions<\/li>\n<li>LSH with Hamming Distance<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>Sistemi di tipi calcoli di processi e di sessione<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Ilaria Castellani, Rosario Pugliese<\/p>\n<p>Il corso mira a presentare alcune tecniche formali, basate su sistemi di tipi, per l\u2019analisi di propriet\u00e0 di sicurezza in una varieta\u2019 di calcoli di processo e di sessione. Si comincer\u00e0 con l\u2019introduzione di alcuni sistemi di tipi per la sicurezza per il CCS ed una panoramica di diverse propriet\u00e0 di sicurezza, con particolare riguardo alla noninterferenza. Si passer\u00e0 quindi ad approfondire lo studio di sistemi di tipi per calcoli di processi pi\u00f9 espressivi del CCS, come il pi-calcolo. Saranno introdotti il \u201csorting\u201d di Milner e il tipaggio di input\/output di Pierce e Sangiorgi, il tipaggio \u201ccomportamentale\u201d di Kobayashi, e alcuni sistemi di tipi per la sicurezza del flusso d\u2019informazione. Infine, saranno studiati i calcoli di sessione, che permettono ai processi di organizzare le loro comunicazioni secondo un protocollo predefinito. Saranno presentati alcuni sistemi di tipi per varianti di tali calcoli con sessioni binarie con delega, con sessioni n-arie, con sessioni n-arie con delega e sicurezza, e con sessioni con monitoraggio e adattabilit\u00e0.<\/p>\n<hr \/>\n<h2>a.y. 2013\/2014<\/h2>\n<h5>Logic, Sets, and Graphs<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Alberto Policriti<\/p>\n<p>The main goal of the course will be to build the logical and combinatorial prerequisites to present the recent decidability result relative to the Bernays-Schoenfinkel-Ramsey (BSR) class in Set Theory. We will start from the basic notions relative to the classical decision problem in Logic and discuss the celebrated Ramsey theorem, its historical motivations, and hint at some applications. The approach will consist in a construction, from elementary notions, of the material and ideas leading to the solution of the combinatorial difficulties related to the BSR class in Set Theory. The path will explore links between Set Theory and Graph Theory. This connection will be further discussed in the final part of the course.<\/p>\n<h5>The proof theoretic foundation of computational logic<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Dale Miller<\/p>\n<p>I will present proof theory in the Gentzen\/Girard tradition and layer on it recent results on focused proof systems.\u00a0 I will then make systematic use of that framework to present<br \/>\n(1) flexible proof systems for classical, intuitionistic, and linear logics;<br \/>\n(2) a foundation of a range of computational logic tools, ranging from logic programming, theorem proving, and model checking; and<br \/>\n(3) recent work on defining a general approach to proof certificates.<\/p>\n<h5>Probabilistic approaches to the protection of confidential information<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Catuscia Palamidessi<\/p>\n<p>We will present the information-theoretic approach to information flow, focussing on the cases of Shannon entropy and of R\u00e9nyi min-entropy.<br \/>\nWe will link these notions with the concept of adversary.<br \/>\nThen we will present a recent more general approach,\u00a0based on decision theory.<\/p>\n<p>In the second part of this course, we will introduce the framework of differential privacy, we will present the characterizations and properties of this notion, with\u00a0\u00a0emphasis on its compositionality and its independence from the prior information\u00a0of the adversary.We will also highlight the relation with quantitative\u00a0information flow.<br \/>\nWe will present implementations of differential privacy, and discuss the trade-off between privacy\u00a0and utility of the data.<br \/>\nFinally, we will present an extension of differential privacy, and its application to privacy-friendly geolocation.<\/p>\n<h5>Algorithms for big data<\/h5>\n<p><strong>Lecturers:<\/strong>\u00a0 Paolo Ferragina and Andrea Marino<\/p>\n<p>Lecture 1. Data streams and sketching: Distinct counting, Frequent Items, Probabilistic Estimators, Similarity and Min-hash sketches.<\/p>\n<p>Lecture 2. Sampling: sampling in networks, markov chain sampling. Applications to estimating properties of large networks.<\/p>\n<p>Lecture 3. Mining in large graphs: social network analysis, clustering, community detection, spectral techniques.<\/p>\n<p>Lecture 4. Dimensionality reduction: Projections, Locality sensitive hashing, Johnson Lindenstrauss.<\/p>\n<p>Lecture 5. Large-scale distributed programming frameworks: Map-reduce, Pregel and examples of computation on large graphs.<\/p>\n<p>Lecture 6. Diameter computation in real-world huge graphs.<\/p>\n<p>Lecture 7. Distance distribution approximation and introduction to probabilistic counting.<\/p>\n<p>Lecture 8: Probabilistic counting with applications<\/p>\n<p>Lecture 9. Centrality measures in complex networks.<\/p>\n<h5>\u00a0A Framework for Exploring Biology<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Prof. Dr. Grzegorz Rozenberg<\/p>\n<p>In this series of lectures we present a framework for exploring biology which consists of:<\/p>\n<ol>\n<li>A STATIC part which is a depository of knowledge formalized by the notion of an extended zoom structure. The integrating structure of such a depository allows one to deal with the hierarchical nature of biology.<\/li>\n<li>A DYNAMIC part given by a family of reaction systems. They originated as models for processes instigated by the functioning of\u00a0 living cells, and they address two important aspects of biology: non-permanency of its entitities and open system aspect of biological units such as living cells.<\/li>\n<\/ol>\n<p>In this setup the depository of static knowledge given by an extended zoom structure is<br \/>\nexplored by computations\/processes provided by reaction systems, where this exploration can use\/integrate knowledge present on different levels (e.g., atomic, cellular, organisms,<br \/>\nspecies, \u2026. levels).<\/p>\n<p>Research topics in this framework are motivated by biological considerations as well as<br \/>\nby the need to understand the underlying structure of knowledge as well as the<br \/>\nstructure of computations exploring this knowledge. The models we discuss turned out to be<br \/>\nnovel and attractive also from the theory of computation point of view.<\/p>\n<p>The lectures are of interest to mathematicians and computer scientists interested<br \/>\nin formal models of computation and in modelling biological processes as well as to<br \/>\nbioinformaticians, biochemists, and biologists interested in foundational\/formal understanding of biological processes. They are of a tutorial style and self-contained. In particular, no prior knowledge of biochemistry or cell biology is required.<\/p>\n<p>The presented\u00a0 framework was developed jointly with A. Ehrenfeucht from University of Colorado at Boulder<\/p>\n<h5>Computer-aided cryptography<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0Dr. Gilles Barthes<\/p>\n<p>Computer-aided cryptography is an emerging approach to designing and analyzing cryptographic constructions. Its primary focus is to build machine-checked frameworks for the construction and verification of security proofs of cryptographic systems. In the form of tools like EasyCrypt, verified security has been used for verifying emblematic examples of public-key encryption schemes, digital signature schemes, hash function designs, and block cipher modes of operation. Moreover, computer-aided cryptography allows narrowing the gap between provable security and cryptographic implementations, which remains one major issue in the deployment of cryptographic systems. However, the role of computer-aided cryptography is not limited to security proofs, and there exist automated tools for discovering new cryptographic constructions, or automatically finding attacks on existing ones.<\/p>\n<p>The purpose of the course is to motivate the role of computer-aided cryptography, and to give an overview of some recent developments. The main emphasis of the course will be on computer-aided cryptographic proofs, and more specifically on EasyCrypt. The course will describe the foundations of EasyCrypt, provide an introduction to provable security using EasyCrypt, and will cover some representative topics in computer-aided cryptography.<\/p>\n<h5>\u00a0Specification methods<\/h5>\n<p><strong>Lecturer:\u00a0<\/strong>Egon B\u00f6rger<\/p>\n<p>Week 1: Introduction of the methods<br \/>\nGoal, main ingredients and characteristic uses of the methods<br \/>\n\u2013 Introductory examples: sluicegate, trafficlight, packagerouter, lift<br \/>\nDefinition of:<br \/>\n\u2013 Logical foundation (for mono-agent models)<br \/>\n\u2013 Synchronous (parallel)\/asynchronous (distributed) models<br \/>\n\u2013 CoreAsm interpreter to execute ASMs<br \/>\n\u2013 Rodin tool platform for Event-B<\/p>\n<p>Week 2: Refinement method<br \/>\nDefinition and Shortest Path example<br \/>\n\u2013 Java\/JVM case study<\/p>\n<p>Week 3: Modeling patterns, web services, business processes<br \/>\n\u2013 Programming, Workflow and Web Service Mediation patterns<br \/>\n\u2013 Browser\/Server client\/server architecture<br \/>\n\u2013 Business Process Modeling: BPMN vs S-BPM<\/p>\n<hr \/>\n<h2>a.y. 2012\/2013<\/h2>\n<h5>Security at work<\/h5>\n<p><strong>Lecturer:<\/strong>\u00a0 Luca Vigan\u00f2<\/p>\n<p>In the Internet of Services (IoS), systems and applications are no longer the result of programming components in the traditional meaning but are built by composing services that are distributed over the network and reconfigured and consumed dynamically in a demand-driven, flexible way. However, composing services leads to new, subtle and dangerous, vulnerabilities due to interference between component services and policies, the shared communication layer, and application functionality.<br \/>\nI will present the AVANTSSAR Platform and the SPaCIoS Tool, two integrated toolsets for the formal specification and automated validation of trust and security of applications in the IoS at design time and run time, respectively. Both toolsets have been applied as a proof of concept on a set of security problem cases drawn from industrial and open-source IoS application scenarios, thereby paving the way to transferring project results successfully to industrial practice and to standardization bodies and open-source communities.<br \/>\nI will present also a number of particular results that have been obtained in the AVANTSSAR and SPaCIoS projects, such as previously unknown attacks, compositionality results, novel attacker models and techniques for efficient security verification and testing.<\/p>\n<h5>Iterative rounding<\/h5>\n<p><strong>Lecturer<\/strong>: Fabrizio Grandoni<\/p>\n<p>Iterative Rounding is a recent, and very powerful tool to design approximation algorithms. The basic idea is as follows. One solves a (carefully chosen) linear programming relaxation of the considered NP-hard\u00a0 problem. Then one rounds some variable in the fractional solution (which corresponds to fixing part of the solution under construction) according to proper rounding rules.<\/p>\n<p>The problem is then simplified, and the process is iterated on the residual problem until a solution to the original problem is obtained. Alternatively or in combination to rounding, one can also relax (i.e. drop) one constraint. This leads to \u201cslightly\u201d infeasible solutions. In these seminars we will describe a representative sample of the most relevant results obtained via iterative rounding in the literature.<\/p>\n<p>The seminars will be tentatively organized as follows. In the first week, we will introduce approximation algorithms, and present a few foundamental results and techniques in the area. The second week will be devoted to approximation algorithms based on linear programming. We will first introduce linear programming, and then present some LP-based techniques in approximation algorithms. The final part of the week will be devoted to iterative rounding.<\/p>\n<h5>Diffusion of information in static and dynamic graphs<\/h5>\n<p><strong>Lecturer<\/strong>: Pierluigi Crescenzi<\/p>\n<p>Rumor spreading is a well-known gossip-based distributed algorithm for disseminating information in large networks. According to the synchronous push version of this algorithm, an arbitrary source node is initially informed, and, at each time step (a.k.a., round), an informed node u chooses one of its neighbors v uniformly at random, and this node becomes informed at the next time step. In the symmetric pull version of the algorithm, at each time step, a not informed node u randomly chooses one of its neighbors v; if v is informed, then u becomes informed at the next time step.<\/p>\n<p>Finally, the push-and-pull version is a combination of the two previous versions, in which, at each time step, each informed node executes a \u201cpush operation\u201d, and each not informed node executes a \u201cpull operation\u201d. Rumor spreading was first introduced in the context of replicated databases, as a solution to the problem of distributing updates and driving replicas towards consistency. Successively, it has been proposed in several other application areas, such as failure detection in distributed systems, peer-sampling, adaptive machine discovery, and distributed averaging in sensor networks. Apart from its applications, rumor spreading has also been deeply analyzed from a theoretical and mathematical point of view. In particular, the completion time of rumor spreading, that is, the number of steps required in order to have all nodes informed, has been investigated in the case of several different network topologies, such as complete graphs, hypercubes, random graphs, and preferential attachment graphs. Besides obtaining bounds on the completion time of\u00a0 rumor spreading, most of these works also derive deep connections between the completion time itself and some classic measures of graph spectral theory, such as, for example, the conductance of a graph. The techniques and the arguments adopted in these studies strongly rely on the fact that the underlying graph is \u201cstatic\u201d and does not change over time. It is then natural to ask ourselves what is the speed of rumor spreading in the case of \u201cdynamic\u201d networks, where nodes and edges can appear and disappear over time (several emerging networking technologies such as ad hoc wireless, sensor, mobile networks, and peer-to-peer networks are indeed inherently dynamic). In this dynamic environment, even in the case of the simplest communication protocol that implements the broadcast operation, that is, the flooding protocol (according to which a source node is initially informed, and, whenever\u00a0 an uninformed node has an informed neighbor, it becomes informed itself at the next time step), it has been shown that evolving graphs can exhibit communication properties which are much stronger than static networks. In this course, we will first review several results concerning the completion time of rumor spreading in the case of static networks. We will then present some results concerning the completion time of the flooding protocol, which have been obtained in the case of some interesting graph evolution models. Finally, we will present very recent results concerning the completion time of the push version of rumor spreading in the case of dynamic graphs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>a.y. 2020\/2021 Rigorous Modelling Methods for Software Engineering Lecturer:\u00a0 Egon Boerger The course introduces a rigorous method to model software-intensive&hellip;<\/p>\n<p><a class=\"btn btn-dark btn-sm unipi-read-more-link\" href=\"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":919,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-index.php","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-889","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Phd courses of previous academic years - Area Dottorato - Dipartimento di Informatica<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Phd courses of previous academic years - Area Dottorato - Dipartimento di Informatica\" \/>\n<meta property=\"og:description\" content=\"a.y. 2020\/2021 Rigorous Modelling Methods for Software Engineering Lecturer:\u00a0 Egon Boerger The course introduces a rigorous method to model software-intensive&hellip;Read More...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/\" \/>\n<meta property=\"og:site_name\" content=\"Area Dottorato - Dipartimento di Informatica\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-19T18:43:24+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"34 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/phd-programme\\\/teaching\\\/phd-courses-of-previous-years\\\/\",\"url\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/phd-programme\\\/teaching\\\/phd-courses-of-previous-years\\\/\",\"name\":\"Phd courses of previous academic years - Area Dottorato - Dipartimento di Informatica\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/#website\"},\"datePublished\":\"2019-09-15T09:49:19+00:00\",\"dateModified\":\"2021-11-19T18:43:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/phd-programme\\\/teaching\\\/phd-courses-of-previous-years\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/phd-programme\\\/teaching\\\/phd-courses-of-previous-years\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/phd-programme\\\/teaching\\\/phd-courses-of-previous-years\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PhD program\",\"item\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Teaching\",\"item\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/phd-programme\\\/teaching\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Phd courses of previous academic years\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/\",\"name\":\"Area Dottorato - Dipartimento di Informatica\",\"description\":\"Ecco un altro sito Dipartimento di Informatica siti\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dottorato.di.unipi.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Phd courses of previous academic years - Area Dottorato - Dipartimento di Informatica","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/","og_locale":"en_US","og_type":"article","og_title":"Phd courses of previous academic years - Area Dottorato - Dipartimento di Informatica","og_description":"a.y. 2020\/2021 Rigorous Modelling Methods for Software Engineering Lecturer:\u00a0 Egon Boerger The course introduces a rigorous method to model software-intensive&hellip;Read More...","og_url":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/","og_site_name":"Area Dottorato - Dipartimento di Informatica","article_modified_time":"2021-11-19T18:43:24+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"34 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/","url":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/","name":"Phd courses of previous academic years - Area Dottorato - Dipartimento di Informatica","isPartOf":{"@id":"https:\/\/dottorato.di.unipi.it\/en\/#website"},"datePublished":"2019-09-15T09:49:19+00:00","dateModified":"2021-11-19T18:43:24+00:00","breadcrumb":{"@id":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/phd-courses-of-previous-years\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dottorato.di.unipi.it\/en\/"},{"@type":"ListItem","position":2,"name":"PhD program","item":"https:\/\/dottorato.di.unipi.it\/en\/"},{"@type":"ListItem","position":3,"name":"Teaching","item":"https:\/\/dottorato.di.unipi.it\/en\/phd-programme\/teaching\/"},{"@type":"ListItem","position":4,"name":"Phd courses of previous academic years"}]},{"@type":"WebSite","@id":"https:\/\/dottorato.di.unipi.it\/en\/#website","url":"https:\/\/dottorato.di.unipi.it\/en\/","name":"Area Dottorato - Dipartimento di Informatica","description":"Ecco un altro sito Dipartimento di Informatica siti","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dottorato.di.unipi.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"acf":[],"jetpack_sharing_enabled":true,"publishpress_future_action":{"enabled":false,"date":"2026-10-09 15:34:23","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"translation_priority","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/pages\/889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/comments?post=889"}],"version-history":[{"count":46,"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/pages\/889\/revisions"}],"predecessor-version":[{"id":2379,"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/pages\/889\/revisions\/2379"}],"up":[{"embeddable":true,"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/pages\/919"}],"wp:attachment":[{"href":"https:\/\/dottorato.di.unipi.it\/en\/wp-json\/wp\/v2\/media?parent=889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}