Seminar on Microservice Security Concepts for the Cybersecurity Summer School 2019, KEA Institute, Copenhagen, DK | Slides

Seminar on Jolie for the Bertinoro International Spring School 2016, University Residential Center, Bertinoro, IT | Slides | Examples

Seminar on from Service-Oriented Computing to Microservices and Beyond for the Programming Languages course, University of Bologna, Bologna, IT | Slides



Web Science / Social Network Analysis

Master Course - 6 ETCS


Introduction to Network Analysis Slides
Some Logistics (Reading Groups) Slides
Research Design (also, How to read a research paper) Slides
Paper Presentation: An Information Flow Model for Conflict and Fission in Small Groups Slides
The Mathematics of Networks Slides
Data Collection and Data Management Slides
Testing Hypotheses Slides
Measures and Metrics, Nodes Slides

Lectures Schedule

Week Thursday Friday
39 Introduction to Network Analysis Introduction to Network Analysis
Some Logistics
Research Design
40 Research Design
Paper Presentation
Paper Presentation
The Mathematics of Networks
41 Group Paper Presentations
The Mathematics of Networks
UCINET Demonstration
Joint DHDK Degree Presentation (no lecture)
42 Group Paper Presentations
Data Collection and Data Management
UCINET Demonstration
Data Collection and Data Management
UCINET Demonstration
43 Group Paper Presentations
Testing Hypotheses
UCINET Demonstration
Group Paper Presentations
Measures and Metrics, Nodes

The exam consists in a project that applies the knowledge on network analysis acquired during the course. The exam's hand-in consists in a report of 5-6 pages (8-9 pages for projects with more students), detailing the context, the problem/motivation, the data, the measures, and the results of the project that the students performed.

The project is either individual or in a small group and it is negotiated with the teacher through a project proposal. The project proposal is a 1-page document (2 pages for proposals with more students) that briefly presents the context, the problem/motivation, the proposed data, the designed measures, and the expected results of the research project that the student will perform.

The deadline for the agreement on the project proposal is always 20 days before the deadline for delivering the project. Projects whose proposals did not receive the approval within that deadline will not be evaluated.

Since reaching an agreement on the project proposal might require some negotiation, the students are strongly advised to contact the teacher at least 10 days before the deadline for the project agreement, so there is enough time for that process to finish.

Once the student has received the approval on her/his project proposal, s/he can deliver her/his project within the first valid deadline and the following ones—i.e., once a project proposal has been approved, the student can deliver the project at any valid following deadline.

The grading starts after each project delivery deadline and considers all new (not graded) projects delivered before that deadline.

The deadlines for project delivery are 8 in total within an A.Y. and spaced around 45 days apart (except for the August’s break).

Project delivery deadlines (23:59 UTC+2) for the A.Y. 20–21:

Nov. 27th, 2020
Gen. 8th, 2021
Feb. 26th, 2021
Apr. 9th, 2021
May 21st, 2021
Jul. 2nd, 2021
Sep. 3rd, 2021
Oct. 15th, 2021

Students registered to the exam on AlmaEsami should automatically receive the notification of the grading. Grades are officially registered one week after the notification from AlmaEsami. Within that week, students who passed the exam but want to re-take it (on the same project proposal), can notify the teacher, who will not register their grade. Students have 3 attempts for re-taking the exam. After the third attempt, the last passing grade will be registered automatically.

Delivery of Project Proposals and Reports

Project proposals and reports are delivered in PDF format and use an A4 single-column layout, 1-line spacing, 3cm margins, 12pt font (Times or equivalent).

All deliveries happen via email at the address saverio.giallorenzo[at] and must contain in the subject the prefix [Web Science/Network Analysis].

Guidelines and Report Evaluation

The report is the artefact evaluated for the exam, but students are invited see it as a support tool when conducting their projects. Indeed, if done step-by-step during the project, reporting is a helpful tool to clarify and document the decisions taken by the student at each stage of the project. Moreover, besides “journaling” progress, the report is a useful tool for the students to check that they considered and reported on all the important aspects of their project study. The clear presentation/explanation of those aspects also forms the weighted partition that guides the grading (and indicates a ratio for distributing the contents of the report), as listed below:

Weight Aspects
20% Context
60% Dataset(s) and source(s)
Validity and Reliability
Applied measure/s, its/their justification, and results
20% Interpretation of the overall results
Critique (brief)


Main references:

  • Lecture Notes, Research Papers, and datasets provided by the teacher.
  • Newman, M. (2018). Networks. Oxford university press.
  • Borgatti, S. P., Everett, M. G., & Johnson, J. C. (2018). Analyzing social networks. Sage.

Additional references:

  • Wasserman, S., & Faust, K. (1994). Social network analysis: Methods and applications (Vol. 8). Cambridge university press.
  • Koch, R., & Lockwood, G. (2011). Superconnect: Harnessing the power of networks and the strength of weak links. Random House Digital, Inc..
  • Barabasi, A. L. (2014). Linked-how Everything is Connected to Everything Else and what it Means F (pp. 1-1). Perseus Books Group.
  • Watts, D. J. (2004). Six degrees: The science of a connected age. WW Norton & Company.

Dataset examples


Reading Group Paper An Information Flow Model for Conflict and Fission in Small Groups


Advanced Topics in Concurrent Systems

Master Course - 10 ETCS
Co-taught with Marco Peressotti

See the course description on the SDU website.

Teaching material, exercises, and assignments are available at the repository dedicated to the course.

Operating Systems Laboratory

Bachelor Course - 6 ETCS
Integrated Course to the Operating Systems course taught by Davide Sangiorgi


Introduction Interprocess Communication Slides
Introduction to Jolie Slides Example
Basics - First Service and Basic Deployment Slides Examples
Basic Behaviour - Types and Data Manipulation
Basic Behaviour - Composition and Workflow
Advanced Behaviour - Faults and Dynamic Binding Slides Examples
Advanced Deployment - Architectural Composition Slides Examples


Unless specified differently, exams take place at Laboratorio S04 - Dipartimento di Informatica - Scienza e Ingegneria, Mura Anteo Zamboni, 7 - 40126 Bologna ITALY.


AA 2016-2017


AA 2015-2016 Project Description, Groups status --- Examples: MyTimer example JavaService
AA 2014-2015 Project Description, Groups status --- Examples: File Transfer, Console Inputs


I installed Jolie with the installer but when I launch jolie I get the message "Error: Could not find or load main class jolie.Jolie".

Did you launch the installer with the right permissions? If yes, proceed.

The launchers deployed by the installer use the environment variable JOLIE_HOME to set the classpath and launch Jolie. As reported by the installer at the end of the installation:

Please, open a new shell and execute the command below:

echo 'export JOLIE_HOME="/usr/lib/jolie"' >> ~/.bash_profile

Close the shell and open it again (or source ~/.bash_profile) before trying to launch the Jolie interpreter.

Attention: in case you are still getting the message "Error: Could not find or load main class jolie.Jolie", it could be the case your shell is not sourcing file `.bash_profile`. To fix it, edit your ~/.bashrc file by appending the line source .bash_profile.

I get "command not found" after I installed Jolie under MacOs X El Capitan (10.10.11).

In MacOs X El Capitan (10.10.11) it is not possible to install Jolie using the default values provided by the installer. When prompted by the installer, insert e.g., /usr/local/lib/jolie as the directory of installation of Jolie and /usr/local/bin as the directory of the launchers.

Introduction to Computer Science - Geological Sciences

Bachelor Course - 6 ETCS
Teaching Assistant for Stefano Ferretti

Slides (in Italian)

Introduction Database Systems* Slides
Exercises on Database Systems* Slides
Analysis of data in tabular formats (spreadsheets)* Slides
Operating Systems, Virtualisation Technologies, and Cloud Computing Slides

*Adapted from material by Stefano Ferretti.