PhD Courses

Unige Instructors  
Computational models of visual perceptionFabio Solari13-17 Feb 2023
Theory and Practice of Virtual Reality SystemsManuela Chessa27 Feb -3 Mar 2023
Introduction to Type Theory: from foundations to practiceFrancesco Dagnino6-10 Mar 2023
Introduction to formal verification: an appetiserAngelo Ferrando, Giorgio Delzanno13-17 Mar 2023
Strategic Choices: Games and Team OptimizationMarcello Sanguineti Lucia Pusillo27-31 Mar 2023
An Introduction to PrologViviana Mascardi3-5 Apr 2023
Ricca - Leotta school May 2023Filippo Ricca, Maurizio LeottaMay 2023
Mobile SecurityAlessio Merlo22-26 May 2023
Introduction to High Performance ComputingDaniele D'Agostino29 May - 2 Jun
Theory and Practice of Runtime MonitoringDavide Ancona5-9 Jun 2023
CVCC + DLFrancesca Odone Nicoletta Noceti5-9 Jun 2023
Machine Learning SchoolLorenzo Rosasco19-23 Jun 2023
Effective habits and skills for successful young scientistsFabio Roli26-30 Jun 2023
Adversarial Machine LearningFabio Roli, Luca Demetrio3-5 Jul 2023
Trustworthy Artificial IntelligenceLuca Oneto10-14 Jul 2023
Distributed Optimization and multi decision makingGiulio Ferro, Michela Robba24-27 luglio 2023
External Instructors (CNR/IMT Lucca)  

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

Giorgio Gnecco20-24 Feb 2023
An Introduction to Model Predictive Control
and Rolling Horizon Optimization
Mauro Gaggero20-24 Mar 2023
Network monitoring and inspectionMatteo Repetto27-31 Mar 2023
Accelerated Parallel Systems: the GPU and FPGA casesAntonella Galizia15-19 May 2023
Information HidingLuca Caviglione17-21 Jul 2023


Detailed information


Computational models of visual perception

Duration:  20 hours (+ final project)


Fabio Solari – DIBRIS, University of Genoa –

When: 13-17 February 2023

Where: via Dodecaneso 35


This course introduces paradigms and methods that allow students to develop computational models of visual perception, which are based on hierarchical networks of interacting neural units, mimicking biological processing stages.   


  • Introduction to visual perception and to the cortical dorsal and ventral streams for action and recognition tasks.
  • Hierarchical networks of functional neural units.  Computational models of the visual features estimation for action and recognition. Comparison among computational models and computer vision algorithms. Benchmark Datasets.  How to use computational models to improve virtual and augmented reality systems to allow natural perception and interaction.
  • Case studies: models and algorithms of the literature.



  • R, Hussain,  M. Chessa, F. Solari,  “Mitigating Cybersickness in Virtual Reality Systems through Foveated Depth-of-Field Blur”. Sensors, 21(12), p.4006, 2021
  • G. Maiello, M. Chessa, P.J. Bex, F. Solari. Near-optimal combination of disparity across a log-polar scaled visual field. PLoS Computational  Biology 16(4): e1007699, 2020
  • W.S. Grant, J. Tanner,  L. Itti. "Biologically plausible learning in neural networks with modulatory feedback." Neural Networks 88: 32-48, 2017
  • F. Solari, M. Chessa, NK Medathati, P. Kornprobst. “What can we expect from a V1-MT feedforward architecture for optical flow estimation?”. Signal Processing: Image Communication. 1;39:342-54 ,2015
  • G. Maiello, M. Chessa, F. Solari, P.J. Bex.  The (In) Effectiveness of Simulated Blur for Depth Perception in Naturalistic Images. PLoS one, 10(10), pp. e0140230, 2015
  • A.F. Russell, S. Mihalaş, R. von der Heydt, E. Niebur, R. Etienne-Cummings. "A model of proto-object based saliency." Vision research 94: 1-15, 2014
  • P. Bayerl, H. Neumann.  “Disambiguating visual motion by form-motion interaction—a computational model”. International Journal of Computer Vision. 72(1):27-45, 2007
  • R.S. Zemel, P. Dayan, A.  Pouget. “Probabilistic interpretation of population codes”. Neural Computation, 10(2), pp.403-430, 1998


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

Duration: 20 hours


Giorgio Gnecco – IMT Lucca –

When:  20 -24 February 2023

Where: In one of the DIBRIS buildings either in Via Dodecaneso or in Via Opera Pia. Students’ attendance on Teams is also possible.


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 more recent topics, such as Approximate Dynamic Programming and Neural Networks for the approximate solution of dynamic optimization problems. 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. MATLAB code will be presented for some examples.


 Discrete-time N-stage optimization: Dynamic Programming, LQ and LGQ problems, The Riccati Equations, The Kalman Filter, Approximate Dynamic Programming, Neural Networks for approximate solutions to discrete-time N-stage optimization problems. Continuous-time optimization: the Hamilton-Jacobi-Bellman Equation and the Pontryagin Principle. Connection between continuous-time optimization and differential games. Case-studies and examples.


- D. P. Bertsekas: “Dynamic Programming and Optimal Control”, vol.I, Athena Scientific, fourth edition, 2017. 

- D. P. Bertsekas: “Dynamic Programming and Optimal Control”, vol. II, Athena Scientific, fourth edition, 2012. 

- Lecture notes provided by the teacher.


Theory and Practice of Virtual Reality Systems 

Duration:  20 hours 
Instructor(s):  Manuela Chessa - University of Genoa (DIBRIS) - manuela.chessa@unige.itThis email address is being protected from spambots. You need JavaScript enabled to view it.">
When: 27 February - 3 March 2023
Where: via Dodecaneso 35, Valletta Puggia, DIBRIS


The course provides a general introduction to the theory and the development of Virtual Reality Systems. The course will start from some basic aspects of Virtual Reality towards the recent achievements in Mixed Reality. The course will cover the following topics. 

  • Introduction to Virtual Reality.
  • Applications of Virtual Reality: opportunities and issues.
  • Devices for Virtual Reality.
  • Interaction Techniques in Virtual Reality (hand interaction, walking, …)
  • Perception and Interaction in Virtual Reality.
  • Introduction to Unity.
  • Unity and Unreal
  • How to build a VR application


  • Valentini, I., Ballestin, G., Bassano, C., Solari, F., & Chessa, M. (2020, March). Improving obstacle awareness to enhance interaction in virtual reality. In 2020 IEEE Conference on Virtual Reality and 3D User Interfaces (VR) (pp. 44-52). IEEE.
  • Girau, E., Mura, F., Bazurro, S., Casadio, M., Chirico, M., Solari, F., & Chessa, M. (2019, July). A mixed reality system for the simulation of emergency and first-aid scenarios. In 2019 41st Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC) (pp. 5690-5695). IEEE.
  • Chessa, M., Maiello, G., Klein, L. K., Paulun, V. C., & Solari, F. (2019, March). Grasping objects in immersive Virtual Reality. In 2019 IEEE Conference on Virtual Reality and 3D User Interfaces (VR) (pp. 1749-1754). IEEE.
  • Chessa, M., Maiello, G., Borsari, A., & Bex, P. J. (2019). The perceptual quality of the oculus rift for immersive virtual reality. Human–computer interaction, 34(1), 51-82.


Introduction to Type Theory: from foundations to practice 

Duration:  ~24 hours (about 20 hours) 20 hours for lectures + 4 hours for exercises/laboratory


Francesco Dagnino – DIBRIS, UniGe – 

Jacopo Emmenegger – DIMA, UniGe – 

When: 6-10 March 2023 

Where:  DIBRIS @ VP, Genova


Proof assistants are tools designed to write formal proofs and automatically check their correctness. They are increasingly used  in many different domains, from software verification to mathematics. They allow, for instance, to write code correct-by-construction or to formalise complicated mathematical arguments.. Most popular proof assistants, such as Agda, Coq or Lean, implement a constructive logic based on a (dependent) type theory. This means that they are strongly typed functional programming languages where types and programs are seen as logical formulas and proofs, respectively, and then correctness is just ensured by type-checking a program.
In the course, we will  study fundamental notions and results on type theories, explaining their connection with logic, and we will experiment formal reasoning in a type theory, using Agda as a concrete system.


The program can be adapted depending on the audience. 

- The untyped lambda-calculus as a computational model: terms, reduction, confluence, normalisation
- Constructive reasoning, Intuitionistic Propositional Logic and the BHK interpretation
- Simply typed lambda-calculus, proposition-as-types, proofs-as-terms
- Strong normalisation and consistency
- Introduction to dependent types, quantifiers via dependent sums and products
- Dependent types in Agda, universes
- Inductive types in Agda
- Equality via Identity types 


[1] J.Y. Girard, Y. Lafont, P. Taylor. Proofs and Types. Cambridge University Press, 1989.
21] M.H.B. Sorensen, P. Urzyczyn. Lectures on the Curry-Howard Isomorphism. Elsevier, 2006.
[3] B. Nordstrom, K. Petersson, J.M. Smith. Programming in Martin-löf’s type theory : an introduction. Clarendon Press, 1990.
[4] M. Hofmann. Syntax and Semantics of Dependent Types. Cambridge University Press, 1997
[5] Agda (  


Introduction to formal verification: an appetiser

Duration: about 20 hours

Instructor(s): Angelo Ferrando – University of Genova -

Giorgio Delzanno - University of Genova

When: 13-17 March 2023
Where: Via Dodecaneso 35, Valletta Puggia, DIBRIS


The course provides a general introduction to static formal verification (such as Model Checking), and runtime verification. The course will not focus only on the theoretical foundations of the two approaches, but it will offer practical insights as well. For both methodologies, established tools will be presented and experimented (through laboratories). At the end of the course, a more general overview of recent works on runtime verification will also be reported. This will help the students to have a better understanding of the newest features and challenging applications where such formal technique has been applied.


  • Introduction to Formal Methods and Formal Verification
  • Introduction to temporal logics (LTL and CTL)
  • Introduction to Model Checking
  • Practical applications of Model Checking (with tools)
  • Laboratory on Model Checking tools
  • Introduction to Runtime Verification
  • Practical applications of Runtime Verification (with tools)
  • Laboratory on Runtime Verification
  • Recent study and developments on Runtime Verification (predictive runtime verification, partial monitor, robotics, and so on)
  • Process mining and Petri nets


  • E. Bartocci, Y. Falcone, A. Francalanza, G. Reger, Introduction to runtime verification, in: Lectures on Runtime Verification – Introductory and Advanced Topics, 2018, pp. 1–33.
  • Clarke, E.M.: Model checking. In: International Conference on Foundations of Software Technology and Theoretical Computer Science. pp. 54–56. Springer (1997)
  • Angelo Ferrando, Louise A. Dennis, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Viviana Mascardi.Toward a Holistic Approach to Verification and Validation of Autonomous Cognitive Systems. ACM Trans. Softw. Eng. Methodol. 30(4): 43:1-43:43 (2021)
  • Angelo Ferrando, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Luca Franceschini, Viviana Mascardi. ROSMonitoring: A Runtime Verification Framework for ROS. TAROS 2020: 387-399
  • Andreas Bauer, Martin Leucker, Christian Schallhart: Runtime Verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4): 14:1-14:64 (2011)


An Introduction to Model Predictive Control

and Rolling Horizon Optimization

Duration: 20 hours
Instructor: Mauro Gaggero, National Research Council of Italy (CNR), Genova -
When: 20-24 Marzo 2023
Where: University of Genoa (classroom to be announced in Via Opera Pia) or Microsoft Teams platform


Model predictive control (MPC) and rolling-horizon optimization are optimization and control paradigms that have been widely employed in the literature owing to their ability to exploit information on the future behavior of the system at hand, their capability of dealing with constraints, and the presence of many theoretical results about their properties. From various decades, MPC has been used for process control in chemical plants, and nowadays it is employed for the optimization of many other complex setups such as, for instance, 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. Concerning the academic world, MPC is attractive for both researchers working in the field of Control Systems and Operations Research since it combines several aspects of both disciplines. The course will start from the basic theoretic notions of MPC and rolling-horizon optimization, 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 and rolling-horizon optimization will be presented, together with details of their software implementation.


  • Introduction to discrete-time model predictive control and rolling-horizon optimization
  • 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 and rolling-horizon optimization


  • M. Morari, J.H. Lee, “Model predictive control: past, present and future”, Computers and Chemical Engineering, vol. 23 pp. 667-682, 1999. 
  • D. Mayne, J. Rawlings, C. Rao, and P. Scokaert, “Constrained model predictive control: stability and optimality,” Automatica, vol. 36, no. 6, pp. 789–814, 2000. 
  • E.F. Camacho, C. Bordons, “Model Predictive Control”, Series Advanced Textbooks in Control and Signal Processing, Springer, 2004. 
  • L. Wang, “Model Predictive Control System Design and Implementation Using MATLAB”, Series Advances in Industrial Control, Springer, 2009. 
  • A. Alessandri, M. Baglietto, G. Battistelli, M. Gaggero, "Moving-horizon state estimation for nonlinear systems using neural networks," IEEE Trans. on Neural Networks, vol. 22, no. 5, pp. 768-780, 2011.
  • A. Alessandri, M. Gaggero, F. Tonelli, "Min-max and predictive control for the management of distribution in supply chains," IEEE Trans. on Control Systems Technology, vol. 19, no. 5, pp. 1075-1089, 2011.
  • A. Alessandri, C. Cervellera, M. Gaggero, "Nonlinear predictive control of container flows in maritime intermodal terminals," IEEE Trans. on Control Systems Technology, vol. 21, no. 4, pp. 1423-1431, 2013.
  • M. Gaggero, L. Caviglione, "Predictive control for energy-aware consolidation in cloud datacenters", IEEE Trans. on Control Systems Technology, vol. 24, no. 2, pp. 461-474, 2016.
  • A. Alessandri, M. Gaggero, "Fast moving horizon state estimation for discrete-time systems using single and multi iteration descent methods", IEEE Trans. on Automatic Control, vol. 62, no. 9, pp. 4499-4511, 2017.
  • M. Gaggero, L. Caviglione, "Model predictive control for energy-efficient, quality-aware, and secure virtual machine placement", IEEE Trans. on Automation Science and Engineering, vol. 16, no. 1, pp. 420-432, 2019, DOI:10.1109/TASE.2018.2826723.
  • M. Gaggero, D. Di Paola, A. Petitti, L. Caviglione, "When time matters: predictive mission planning in cyber-physical scenarios", IEEE Access, vol. 7, no. 1, pp. 11246-11257, 2019, DOI:10.1109/ACCESS.2019.2892310.



Strategic Choices: Games and Team Optimization

 Duration:  20 hours

Instructors:   Lucia Pusillo - University of Genoa (DIMA) -

          Marcello Sanguineti - University of Genoa (DIBRIS) -

 When:  27-31 March 2023

Where: Via Dodecaneso 35

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.


  • 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
  • Team optimization with stochastic information structure.
  • Examples of applications in contexts such as:
  • environment models;
  • nonverbal communication & social interactions;
  • medicine and biology; 
  • optimal production;
  • telecommunication networks;
  • transportation networks.


  • Course notes/slides.
  • A. Dontchev, T. Zolezzi. ''Well-Posed Optimization Problems''. Lecture Notes in Math., vol. 1543. Springer, 1993.
  • D. Fudenberg, J. Tirole.  ''Game Theory'', MIT Press, 1991
  • G. Gnecco, M. Sanguineti. “Team Optimization Problems with Lipschitz Continuous Strategies”, Optimization Letters, vol. 5, pp. 333-346, 2011.
  • G. Gnecco, M. Sanguineti. “New Insights into Witsenhausen’s Counterexample”, Optim. Let. 6:1425-1446, 2012.
  • G. Gnecco, Y. Hadas, M. Sanguineti, “Some Properties of Transportation Network Cooperative Games". Networks 74:161–173, 2019. 
  • G. Gnecco, M. Sanguineti, G. Gaggero. “Suboptimal Solutions to Team Optimization Problems with Stochastic Information Structure”. SIAM J. on Optimization 22:212-243, 2012.
  • Y. Hadas, G. Gnecco, M. Sanguineti. "An Approach to Transportation Network Analysis ViaTransferable Utility Games". Transportation Res. Part B: Methodological, vol. 105, pp. 120-143, 2017.
  • K. Kolykhalova, G. Gnecco, M. Sanguineti, G. Volpe, A. Camurri, “Automated Analysis of the Origin of        Movement: An Approach Based on Cooperative Games on Graphs". IEEE Trans. on Human-Machine Systems 50:550-560, 2020.
  • H. Peters. ''Game Theory- A Multileveled Approach''. Springer, 2008.
  • L. Pusillo. "Evolutionary Stable Strategies and Well Posedness Property", Appl. Math. Sc. 7:363-376, 2013.
  • L. Pusillo, S. Tijs. ''E-equilibria for Multicriteria Games ''. In: R. Cressman and P. Cardaliaguet. The Annals of the Int. Society of Dynamic Games (ISDG). vol. 12, pp. 217-228, Birkhauser, 2012.
  • R. Zoppoli, M. Sanguineti, G. Gnecco, T. Parisini. “Neural Approximations for Optimal Control and Decision". Springer, Communications and Control Engineering Series. London, 2020.


Network monitoring and inspection

Duration:  20 hours


Matteo Repetto

Institute for Applied Mathematics and Information Technologies 

National Research Council of Italy (CNR)

When: 27-31 March 2023

Where: Online (Teams) or on site (as requested by students)

The Internet is the main carrier for cyber-attacks, so it is not surprising that most detection techniques build on network flow monitoring and packet inspection. There is a huge amount of information that potentially can be gathered from the network, but deep packet inspection at line rate is extremely challenging even in hardware, especially in case of high-speed links (1 Gbps and upward).  This course will give a basic understanding of common tools for flow monitoring and packet inspection, with specific emphasis on how to extract custom information that is ever more needed to detect modern attacks. Besides, the eBPF framework provided by the Linux kernel will be introduced as a power mechanism to build efficient, custom and portable inspection and enforcement processes.


  • Introduction to network monitoring
  • Overview of common network cyber-attacks
  • Network protocols for flow monitoring
  • Interactive inspection tools: wireshark, tshark, tcpdump for wired/wireless network monitoring
  • Passive network monitoring and deep packet inspection: nProbe, PacketBeat, Zeek
  • Programmable monitoring: Zeek scripting and eBPF


  • L. Caviglione, W. Mazurczyk, M. Repetto, A. Schaffhauser, M. Zuppelli. Kernel-level tracing for detecting stegomalware and covert channels in Linux environments. Computer Networks, Volume 191, May 2021. DOI: 10.1016/j.comnet.2021.108010
  • M. Repetto, A. Carrega, R. Rapuzzi. An architecture to manage security operations for digital service chains. Future Generation Computer Systems. Volume 115, February 2021, Pages 251-266. DOI: 10.1016/j.future.2020.08.044 
  • M. Repetto, G. Bruno, J. Yusupov, G. Lamanna, B. Ertl, and A. Carrega. Automating Mitigation of Amplification Attacks in NFV Services. IEEE Transactions on Network and Service Management. Early access. DOI: 10.1109/TNSM.2022.3172880
  • M. Zuppelli, M. Repetto, A. Schaffhauser, W. Mazurczyk, L. Caviglione. Code Layering for the Detection of Network Covert Channels in Agentless Systems. IEEE Transactions on Network and Service Management. Early access. DOI: 10.1109/TNSM.2022.3176752


An Introduction to Prolog 

Duration:  12 hours

Instructor: Mascardi Viviana,

When: April, 3, 4, 5, 2023 (4 hours per day, given in presence and online via Teams)

Where: DIBRIS, Via Dodecaneso 35


Abstract: "In the summer of 1972, Alain Colmerauer and his team in Marseille developed and implemented the first version of the logic programming language Prolog. Together with both earlier and later collaborations with Robert Kowalski and his colleagues in Edinburgh, this work laid the practical and theoretical foundations for the Prolog and logic programming of today. Prolog and its related technologies soon became key tools of symbolic programming and Artificial Intelligence."

This statement is taken from the "The Year of Prolog" web page, the 50th anniversary of Prolog has been celebrated in 2022 with scientific and dissemination initiatives all over the world. Keeping the momentum going, we offer a compact introductory course on Prolog, with practical exercises and an overview of the existing and future Prolog applications. In particular, we highlight the potential of Prolog for implementing cognitive intelligent agents and for supporting eXplainable Artificial Intelligence (XAI) thanks to its declarative flavor.


Prolog syntax

Prolog operational semantics

Extra-logical and meta-logical predicates

Future perspectives



The Art of Prolog, second edition

Advanced Programming Techniques

by Leon S. Sterling and Ehud Y. Shapiro



Accelerated Parallel Systems: the GPU and FPGA cases

Duration: 20 hours (five half-days)
Instructors: Antonella Galizia - IMATI-CNR, Christian Pilato - Politecnico di Milano christian.pilato@polimi.itThis email address is being protected from spambots. You need JavaScript enabled to view it.">
When: 15-19 May 2023
Where: DIBRIS-UNIGE Via Dodecaneso 35, Genova (online attendance will be possible)


With the end of Moore law for sequential computing architectures and the advents of multi and many cores era, managing parallelism is no longer the goal of a restricted community but becomes a need for everybody who is interested in exploiting an adequate fraction of available performance provided by widespread modern computing architectures, including desktop and mobile devices. A computer is nowadays a complex system with heterogeneous computational units including multi cores CPU and many cores accelerators such as Graphic Processing Unit (GPU), Field-Programmable Gate Array (FPGA), or others. The aim of the course is to present the state-of-the-practice on computing systems equipped with accelerated technology; the main focus is on high efficiency, which is of utmost importance but can have different meanings: as for high-performance computing and data center domains, high efficiency mostly relates to performance while in the mobile and IoT space, research communities think about accelerators more from a power/energy perspective. The course considers programming of Complex Heterogeneous Parallel Systems (CHPS) and in particular accelerators as GPU and FPGA, the overall goal and challenge is the portability and performances of software to ensure effectiveness and efficiency of target applications. This edition of the course will discuss two different approaches: the GPGPU based solutions and the hardware specialization of the application on FPGA. In particular, it will be shown, with practical cases, how to design and implement applications able to exploit available computational resources through a suitable selection of programming tools, communications and domain-oriented libraries, and design and implementation strategies. At this regards the course will include a hands-on part that the student may dedicate to a general case study or to a personalized case depending on specific interests.


  • Introduction to complex heterogeneous parallel systems (CHPS): from personal computer to High Performance clusters and GPUs
  • A coarse grain analysis of performances and programming issues for CHPS, including memory hierarchies and data movement; computational units and different levels-types of parallelism; communications issues
  • Overview of GPGPU oriented parallel processing libraries, languages and tools. This will include CUDA, OpenACC and OpenCL insights, GPU-accelerated libraries
  • Overview of CUDA advanced programming features will be provided as well as examples of high software ecosystem such HPC solutions for Python, accelerated libraries, tools for profiling and debugging, and high-level synthesis tools for automatic hardware customization.
  • Designing parallel and/or heterogeneous applications and practical experiences: hands on case studies selected from linear algebra, computational geometry, Monte Carlo simulation, and data science applications. Individual case study on topics proposed by students will be encouraged (8hours)


Slides of the course will be provided to students



Ricca - Leotta school May 2023

Mobile Security

Duration: 20 hours (5 half-days)
Instructors(s): Alessio Merlo – University of Genova Luca Verderame – University of Genova luca.verderame@unige.itThis email address is being protected from spambots. You need JavaScript enabled to view it.">
When: 22-26 May 2023
Where: online via Teams or in presence at DIBRIS – Valletta Puggia, Via Dodecaneso 35

Abstract: The course provides an overview of the main topics related to the security of mobile devices and applications. The course offers an insight into the leading mobile operating systems (i.e., Android and iOS) and their security issues. Moreover, the course provides a discussion on emerging mobile security technologies (e.g., Host-Based Card Emulation, and Trusted Execution Environment), security threats, and possible countermeasures. The second part of the course will cover the security of Mobile Applications, with a particular focus of state-of-the-art frameworks and methodologies for the vulnerability assessment of Android applications. Finally, the course will provide specific hands-on sessions with tools and techniques for the vulnerability assessment of Android applications.


  • Introduction to mobile devices: history, features, and evolution;
  • Architecture and security features of the principal mobile OSes (Android, iOS);
  • Emerging mobile security technologies, security threats, and countermeasures;
  • OWASP for Mobile Application Security Analysis;
  • Reverse Engineering of Android Apps and Reversing Countermeasures;
  • Static and Dynamic analysis of Android Apps.

During the hands-on sessions, students will get acquainted with a number of static and dynamic analysis tools, including


  • Romdhana, A., Merlo, A., Ceccato, M., & Tonella, P. (2022). Deep reinforcement learning for black-box testing of android apps. ACM Transactions on Software Engineering and Methodology.
  • Merlo, A., Ruggia, A., Sciolla, L., & Verderame, L. (2021). ARMAND: Anti-repackaging through multi-pattern anti-tampering based on native detection. Pervasive and Mobile Computing, 76, 101443.
  • Mayrhofer, R., Stoep, J. V., Brubaker, C., & Kralevich, N. (2021). The android platform security model. ACM Transactions on Privacy and Security (TOPS), 24(3), 1-35.
  • OWASP Mobile Security Project. Mobile Security Testing Guide (MSTG) and Mobile Application Security Verification Standard (MASVS);


Introduction to High Performance Computing

Duration:  20 hours 

Instructor: Daniele D’Agostino – DIBRIS Unige

When: 29 May - 2 June 2023

Where: Via Dodecaneso 

Abstract For most scientists the abstract fact of the existence of an algorithm solving a problem is enough, while its efficient implementation in terms of exploitation of the available computational capabilities is mostly disregarded. But with the end of Moore law for sequential computing architectures and the advents of multi and many cores era, managing parallelism is no longer the goal of a restricted ICT community, it becomes a need for everybody who is interested in exploiting an adequate fraction of available performance provided by widespread modern computing architectures. The aim of the course is to provide a glance of the different aspects involved in efficient and effective programming of current heterogeneous computing systems equipped with manycore x86 architectures and accelerators, in particular graphics cards (GPUs). Therefore, it conveys the required knowledge to develop a thorough understanding of the interactions between software and hardware at the core, socket, node and cluster level. In particular it will be presented, with practical cases, how the design and implementation of programs can exploit available computational resources through a suitable selection of programming paradigms, compiling and profiling tools. The course includes a hands-on part that the student may dedicate to a general case study or to a personalized case depending on specific interests.
The programming language will be C/C++. The translation in Fortran is straightforward.


  • Introduction to complex heterogeneous parallel systems: from workstations to High Performance clusters and supercomputers.
  • The von Neumann architecture then versus now, features and bottlenecks.
  • Introduction to parallel architectures.
    • Single Instruction Multiple Data (SIMD)
    • Single Program Multiple Data (SPMD)
  • The roofline performance model.
    • Profiling and performance analysis
  • The compiler, one of the most important software tools for HPC.
    • Intel oneAPI 
    • Nvidia HPC SDK 
  • Optimal use of parallel resources – on the basis of students’ interests
    • Parallel programming for x86 nodes: OpenMP and MPI
    • Parallel programming for GPUs: openACC and CUDA
    • Parallel programming for HPC systems: MPI+X
  • Designing parallel applications and practical experiences.


  • Slides and references will be provided to students


Theory and Practice of Runtime Monitoring

Duration:  about 20 hours

Instructor(s):  Davide Ancona - University of Genoa (DIBRIS) -,
Angelo Ferrando - University of Genoa (DIBRIS) -

When: 5 - 9 June 2023

Where: via Dodecaneso 35, Valletta Puggia, DIBRIS


The course provides a general introduction to Runtime Monitoring and Verification (RM&V),  and the theoretical and practical aspects of RML (Runtime Monitoring Language), a system agnostic domain specific language for RM&V. Use cases will be considered in the context of distributed and Internet of Things systems with Node.js/Jalangi2 and Node-RED and robotic systems based on ROS.

  • An introduction to RM&V.
  • Theory and practice of RML, a domain specific language for RM&V.
  • RM&V of Node.js applications with RML and Jalangi2.
  • RM&V of IoT systems with RML and Node-RED.
  • RM&V of Robotic systems based on ROS.
  • Hands-on labs with RML, Jalangi2, Node.js and Node-RED.


  • Davide Ancona, Luca Franceschini, Angelo Ferrando, Viviana Mascardi.  RML: Theory and practice of a domain specific language for runtime verification. Science of Computer Programming, 205:102610 (2021).
  • Angelo Ferrando, Louise A. Dennis, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Viviana Mascardi.Toward a Holistic Approach to Verification and Validation of Autonomous Cognitive Systems. ACM Trans. Softw. Eng. Methodol. 30(4): 43:1-43:43 (2021)
  • Angelo Ferrando, Rafael C. Cardoso, Michael Fisher, Davide Ancona, Luca Franceschini, Viviana Mascardi. ROSMonitoring: A Runtime Verification Framework for ROS. TAROS 2020: 387-399
  • Luca Franceschini, RML: Runtime Monitoring Language, Ph.D. thesis, DIBRIS - University of Genova, URL, March 2020.
  • Davide Ancona, Francesco Dagnino, Luca Franceschini. A formalism for specification of Java API interfaces. ISSTA/ECOOP Workshops 2018: 24-26
  • Davide Ancona, Luca Franceschini, Giorgio Delzanno, Maurizio Leotta, Marina Ribaudo, Filippo Ricca. Towards Runtime Monitoring of Node.js and Its Application to the Internet of Things. ALP4IoT@iFM 2017: 27-42
  • Davide Ancona, Angelo Ferrando, Viviana Mascardi. Comparing Trace Expressions and Linear Temporal Logic for Runtime Verification. Theory and Practice of Formal Methods 2016: 47-64
  • Angelo Ferrando, Davide Ancona, Viviana Mascardi. Decentralizing MAS Monitoring with DecAMon. AAMAS 2017: 239-248
  • Davide Ancona, Angelo Ferrando, Viviana Mascardi. Parametric Runtime Verification of Multiagent Systems. AAMAS 2017: 1457-1459
  • Y. Falcone, S. Krstic, G. Reger, D. Traytel, A taxonomy for classifying runtime verification tools, in: Runtime Verification – 18th International Conference, Proceedings, RV  2018, pp. 241–262.
  • E. Bartocci, Y. Falcone, A. Francalanza, G. Reger, Introduction to runtime verification, in: Lectures on Runtime Verification – Introductory and Advanced Topics, 2018, pp. 1–33.
  • Yliès Falcone, Klaus Havelund, Giles Reger. A Tutorial on Runtime Verification. Engineering Dependable Software Systems 2013: 141-175
  • Martin Leucker, Christian Schallhart. A brief account of runtime verification. J. Log. Algebr. Program. 78(5): 293-303 (2009)
  • RML:
  • Node.js:
  • Node-RED:
  • Jalangi2:


Computer Vision Crash Course

Duration:  20 hours   


Francesca Odone and Nicoletta Noceti 

MaLGa DIBRIS, Università degli Studi di Genova  

{francesca.odone, nicoletta.noceti,}

When: 5 -9 June 2023
Where: DIBRIS-UNIGE Via Dodecaneso 35, Genova 


Visual perception, as a key element of Artificial Intelligence, allows us to build smart systems sensitive to surrounding environments, interactive robots, video-cameras with real time algorithms running on board. With similar algorithms, our smart phones can log us in by recognizing our face, read text automatically, improve the quality of the photos we shoot. At the core of these applications are computer vision models, often boosted by machine learning algorithms. 
This crash course is conceived as a complement to the “Deep Learning:  Hands on introduction” course (henceforth DL) although it can be taken independently.
It covers the basic principles of computer vision and visual perception in artificial agents, including theoretical classes, application examples, hand-on activities.
Within CVCC, we present elements of classical computer vision (introduction to image processing, feature detection, depth estimation, motion analysis).
At the same time, by borrowing from DL, we also present deep learning approaches to computer vision problems such as image classification, detection, and semantic segmentation.  

Core CVCC Program (for those attending the CVCC course only)

Integrated DL and CVCC program


Slides and readings will be provided.  

Some reference books:


Topics in Modern Machine Learning (ModML)


20 hours 


Lorenzo Rosasco – DIBRIS – lorenzo.rosasco@unige.itThis email address is being protected from spambots. You need JavaScript enabled to view it.">
Giovanni Alberti – DIMA – 
Simone Di Marino – DMA - 

When: 19-23 June 2023

Where DIBRIS, Via Dodecaneso 35


This is an advanced machine learning course covering some of the topics of interest in modern machine learning. After a 6-hour boot camp on the first day (on statistical learning, machine learning models and optimization for machine learning), the rest of the week will be dedicated to introducing modern topics including, for example, interpolation and overparameterization, implicit regularization, optimal transport for machine learning, machine learning for inverse problems, fairness in machine learning and reinforcement learning. Each presentation, held in the morning, will be introductory and self-contained, with an associated practical session in the afternoon. The last day will be dedicated to a workshop with invited speakers.

Program The detailed program will be provided later.

References Ad hoc references will be given for each topic.



Effective habits and skills for successful young scientists


Teacher: Fabio Roli
Duration: 20 hours (5 half-days)
When: June 26-30 2023
Where: online on MS Teams
Curriculum: Cross-curricula course
Exam: written assessments with open-ended questions


Although tons of books on effective habits and soft skills have been published, they have not been thought for scientists, and, therefore, issues that are relevant for them are not easily available. This short course aims to collect spread ideas and place them in a coherent framework useful for young scientists and provide a small tactical guide for scientists at the first stages of their career. First, I review the main concepts of Steve Covey's personal and time management paradigm, the inspirational speeches of the late Professor Randy Pausch, and the paradigm of atomic habits of James Clear, and discuss their utility for daily activity of a young scientist. Then, I focus on a few practical skills, namely, on how to write a great paper and give a great talk. I try to convey the message that succeeding in science and technology requires skills and habits beyond the pure intelligence and intellectual abilities, and that good habits and skills of personal and time management are extremely important for young scientists.


  1. Basic concepts of theory of habits. Effective habits for young scientists.
  2. Basis concepts of personal and time management. Effective personal and time management for young scientists.
  3. Survival skills in the game of science. Know yourself: match your goals to your character and talents.
  4. How to write a great paper.
  5. How to give a great talk.


  • S. Covey, The 7 Habits of Highly Effective People, 2020
  • J. Clear, Atomic habits, 2018
  • F. Rosei, T. Johnston, Survival skills for scientists, 2006
  • F. Roli, Personal and time management for young scientists, tutorial at the International Conference on Machine Learning and Cybernetics, 2013
  • R. Hamming, You and your research, 1986
  • U. Alon, How to choose a good scientific problem, Molecular Cell, 2009.
  • D. A. Patterson, How to have a bad career in research, Talks at Google, 2016


Adversarial Machine Learning 

Teachers: Fabio Roli and Luca Demetrio
Duration: 12 hours (3 half-days)
When: July 3-5 2023
Where: online on MS Teams
Curriculum: Cybersecurity and Reliable AI
Exam: 2 written assessments (one with multiple choice questions, one hands-on assessment using the SecML software library, )


Today machine-learning algorithms are used for many real-world applications, including image recognition, spam filtering, malware detection, biometric recognition. In these applications, the learning algorithm can have to face intelligent and adaptive attackers who can carefully manipulate data to purposely subvert the learning process. As machine learning algorithms have not been originally designed under such premises, they have been shown to be vulnerable to well-crafted attacks, including test-time evasion and training-time poisoning attacks (also known as adversarial examples). In particular, the security of cloud-based machine-learning services has been questioned through the careful construction of adversarial queries that can reveal confidential information on the machine-learning service and its users. This course aims to introduce the fundamentals of the security of machine learning, the related field of adversarial machine learning, and some techniques to assess the vulnerability of machine-learning algorithms and to protect them from adversarial attacks. We report application examples including object recognition in images, biometric identity recognition, spam and malware detection, with hands-on on attacks against machine learning and defences of machine-learning algorithms using the SecML software library,


  1. Introduction to adversarial machine learning: introduction by practical examples from computer vision, biometrics, spam, malware detection.
  2. Design of learning-based pattern classifiers in adversarial environments. Modelling adversarial tasks. The two-player model (the attacker and the classifier).  Levels of reciprocal knowledge of the two players (perfect knowledge, limited knowledge, knowledge by queries and feedback). The concepts of security by design and security by obscurity
  3. System design: vulnerability assessment and defense strategies. Attack models against machine learning. Vulnerability assessment by performance evaluation. Taxonomy of possible defense strategies.
  4. Hands-on classes on attacks and defences of machine-learning algorithms using the SecML open-source Python library for the security evaluation of machine learning algorithms ( ).
  5. Summary and outlook. Current state of this research field and future perspectives 



  • B., Battista, F. Roli. "Wild patterns: Ten years after the rise of adversarial machine learning." Pattern Recognition 84 (2018): 317-331.
  • B. Biggio, F.Roli, Wild Patterns, Half-day Tutorial on Adversarial Machine Learning:
  • Biggio, B., Corona, I., Maiorca, D., Nelson, B., Srndic, N., Laskov, P., Giacinto, G., Roli, F. Evasion attacks against machine learning at test time.  ECML-PKDD, 2013.
  • Biggio, B., Fumera, G., Roli, F. Security evaluation of pattern classifiers under attack. IEEE Trans. Knowl. Data Eng., 26 (4):984–996, 2014.


Trustworthy Artificial Intelligence

Duration:  20 hours 

Instructor(s): Luca Oneto – UNIGE –  

When: from Monday 10th of July 2023 to Friday 14th of July 2023 from 8:00 to 12:00 CEST

Where: TBD

Abstract: It has been argued that Artificial Intelligence (AI) is experiencing a fast process of commodification. This characterization is of interest for big IT companies, but it correctly reflects the current industrialization of AI. This phenomenon means that AI systems and products are reaching the society at large and, therefore, that societal issues related to the use of AI and Machine Learning (ML) cannot be ignored any longer. Designing ML models from this human-centered perspective means incorporating human-relevant requirements such as reliability, fairness, privacy, and interpretability, but also considering broad societal issues such as ethics and legislation. These are essential aspects to foster the acceptance of ML-based technologies, as well as to be able to comply with an evolving legislation concerning the impact of digital technologies on ethically and privacy sensitive matters.


  • Trustworthy AI;
  • Reliable AI: Sensitivity Analysis, Robustness, Non-Regressivity, and Adversarial Machine Learning;
  • Fair AI: from Pre-, In-, and Post-Processing Models to Learn Fair Representations;
  • Private AI: Anonymization, Federated Learning, Differential Privacy, Homomorphic Encryption;
  • Interpretable/Explainable AI: making models more understandable.


  • L. Oneto, et al. Towards learning trustworthily, automatically, and with guarantees on graphs: an overview. Neurocomputing, 2022
  • Winfield, A. F. et al. "Machine ethics: the design and governance of ethical AI and autonomous systems." Proceedings of the IEEE 107.3 (2019): 509-517.
  • Floridi, L. "Establishing the rules for building trustworthy AI." Nature Machine Intelligence 1.6 (2019): 261-262.
  • L. Oneto and S. Chiappa. Fairness in machine learning. Recent Trends in Learning From Data. Springer, 2020
  • Biggio, B. and Roli F. "Wild patterns: Ten years after the rise of adversarial machine learning." Pattern Recognition 84 (2018): 317-331.
  • Guidotti, R. et al. "A survey of methods for explaining black box models." ACM computing surveys (CSUR) 51.5 (2018): 1-42.
  • Liu, B. et al. "When machine learning meets privacy: A survey and outlook." ACM Computing Surveys (CSUR) 54.2 (2021): 1-36.


Information Hiding

Duration:  20 hours (5 half-days)


Luca Caviglione

Institute for Applied Mathematics and Information Technologies 

National Research Council of Italy (CNR)


When:  17-21 Jul 2023
Where: preferred venue is via Skype or Microsoft Teams to reach a wide audience. Otherwise, Via Dodecaneso (according to post-pandemic rules). 


Information hiding techniques are increasingly used in investigative journalism to protect the identity of sources or by malware to hide its existence and communication attempts. Therefore, understanding how information hiding can be used to empower privacy of users or endow malicious software with the ability of staying "under the radar" are essential to fully assess the modern cybersecurity panorama. 

In this perspective, the course introduces the use of information hiding in modern threats and privacy-enhancing architectures with emphasis on two different research areas, specifically: i) techniques for creating network covert channels for communicating with a remote command & control facility, exfiltrate sensitive information and or enforce privacy ii) how to create and detect a covert channel implementing an abusive local path between two colluding applications to bypass the security framework of mobile devices. 

To give a comprehensive overview on information hiding and steganography, the course will also cover the use of information hiding and steganographic techniques for watermarking purposes. For instance, it will showcase the main mechanisms for watermarking images, sounds and network flows for management, retrieval, metadating, authentication and copyright enforcement. The course will also discuss possible countermeasures or mitigation methodologies for facing the risks of the increasing amount of steganographic threats observed in the wild.


Module 1: Course introduction and a general view on information hiding. 
Module 2: Information hiding as a cybersecurity threat: malware and colluding applications.
Module 3: Network covert channels (including air-gapped covert channels).   
Module 4: Information hiding for watermarking, privacy enhancing, and metadating.
Module 5: Countermeasures (e.g., detecting obfuscated malware or removing ambiguities in protocols). 


[1] W. Mazurczyk, L. Caviglione, “Steganography in Modern Smartphones and Mitigation Techniques”, IEEE Communications Surveys & Tutorials, IEEE, Vol. 17, No.1, First Quarter 2015, pp. 334 - 357.

[2] W. Mazurczyk, L. Caviglione, Information Hiding as a Challenge for Malware Detection, IEEE Security & Privacy, Vol. 13, No. 2, pp. 89-93, Mar.-Apr. 2015.

[3] L. Caviglione, M. Podolski, W. Mazurczyk, M. Ianigro, “Covert Channels in Personal Cloud Storage Services: the case of Dropbox”, IEEE Transactions on Industrial Informatics, IEEE, Vol. 13, No. 4, pp. 1921 - 1931, August 2017.

[4] L. Caviglione, M. Gaggero, J.-F. Lalande, W. Mazurczyk, M. Urbanski, “Seeing the Unseen: Revealing Mobile Malware Hidden Communications via Energy Consumption and Artificial Intelligence”, IEEE Transactions on Information Forensics & Security, IEEE, Vol. 11, No. 4, pp. 799 – 810, April 2016. 

[5] W. Mazurczyk, L. Caviglione, “Cyber Reconnaissance Techniques”, Communications of the ACM, Vol. 64, No. 3, pp. 86-95, March 2021.

[6] L. Caviglione, W. Mazurczyk, “Never Mind the Malware, Here’s the Stegomalware”, IEEE Security & Privacy, Vol. 20, No. 5, pp. 101-106, Sept.-Oct. 2022.

[7] Steg-in-the-wild ( a curated list of attacks observed in the wild taking advantage of steganographic or information-hiding-capable techniques.

Distributed optimization and multi decision making

Duration: 20 hours

Instructors: Giulio Ferro– University of Genova –; Michela Robba– University of Genova –

The course will include the participation of personnel from MIT (Massachusetts Institute of Technology) for research activities related to the course.

When: 24-27 July 2022

Where: Teams and in presence


In recent years, there is a growing attention on distributed optimization due to recent interest in large scale optimization problems application, like machine learning smart grids and general networked systems, involving multiple decision makers at the same time. In this context, distributed optimization techniques are a very promising solution to afford this type of decision problems, since allow the fast solution of large-scale optimization problems by keeping private the information exchange and allowing plug and play capabilities. The course will present the basics of distributed optimization and multi decision making starting from the basic concepts of constrained optimization, up to developing and implementing state of the art distributed optimization algorithms (such as dual decomposition and ADMM). From an application point of view, the course will be mainly focused on examples related to energy management (smart grids, energy communities, electric vehicles). In some cases, the examples will regard coupled transportation and energy networks. Finally, a seminar will be held on recent developments in distributed optimization (with application to smart grids) by experts from the Massachusetts Institute of Technology (MIT), with the instructors have been working for years.


  • Introduction to constrained optimization and applications in the energy and transportation sector (electric vehicles)

  • Multi decision making with multilevel programming

  • Distributed optimization algorithms: dual decomposition and alternating direction method of multipliers (ADMM).

  • Seminar on recent developments on distributed optimization by MIT experts.

  • Application to real case studies: smart grids, energy communities, electric vehicles.


  • Romvary J, Ferro G, Haider R, Annaswamy A. A Proximal Atomic Coordination Algorithm for Distributed Optimization. IEEE Trans Automat Contr. 2021:1-1. doi:10.1109/tac.2021.3053907

  • Ferro G, Robba M, D’Achiardi D, Haider R, Annaswamy A. A distributed approach to the Optimal Power Flow problem for unbalanced and mesh networks. IFAC-PapersOnLine. 2020;53(2):13287-13292. doi:10.1016/j.ifacol.2020.12.159

  • Ferro G, Minciardi R, Parodi L, Robba M, Rossi M. A multi-objective and multi-decision maker approach for the balancing market in distribution grids in presence of aggregators. 2020 7th International Conference on Control, Decision and Information Technologies (CoDIT). 2020. doi:10.1109/codit49905.2020.9263784

  • T. R Nudell1, M. Brignone, M. Robba, A. Bonfiglio, G. Ferro, F. Delfino, and A. M. Annaswamy. Distributed Control for Polygeneration Microgrids: A Dynamic Market Mechanism Approach Control Eng Pract.(2022)

  • S. Boyd, N. Parikh, E. Chu, B. Peleato, J. Eckstein, et al., “Distributed optimization and statistical learning via the alternating direction method of multipliers,” Foundations and Trends in Machine learning, vol. 3, no. 1, pp. 1–122, 2011.


Last update 13 April 2023