First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
Course unit
SCP6076340, A.A. 2019/20

Information concerning the students who enrolled in A.Y. 2019/20

Information on the course unit
Degree course Second cycle degree in
SC1176, Degree course structure A.Y. 2014/15, A.Y. 2019/20
bring this page
with you
Number of ECTS credits allocated 6.0
Type of assessment Mark
Course unit English denomination CONCURRENT AND DISTRIBUTED SYSTEMS
Website of the academic structure
Department of reference Department of Mathematics
Mandatory attendance No
Language of instruction Italian
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Teacher in charge TULLIO VARDANEGA INF/01

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Core courses INF/01 Computer Science 6.0

Course unit organization
Period First semester
Year 1st Year
Teaching method frontal

Type of hours Credits Teaching
Hours of
Individual study
Lecture 6.0 48 102.0 No turn

Start of activities 30/09/2019
End of activities 18/01/2020
Show course schedule 2019/20 Reg.2014 course timetable

Examination board
Board From To Members of the board
3 a.a. 2019/2020 01/10/2019 28/02/2021 VARDANEGA TULLIO (Presidente)
CRAFA SILVIA (Membro Effettivo)
BALDAN PAOLO (Supplente)
2 a.a. 2018/2019 01/10/2018 28/02/2020 VARDANEGA TULLIO (Presidente)
CRAFA SILVIA (Membro Effettivo)
BALDAN PAOLO (Supplente)
BUJARI ARMIR (Supplente)

Prerequisites: The class subject assumes familiarity with the architecture of traditional computer systems and networks, as well as with the organization and activity of operating systems for those architectures, especially regarding their support for concurrency, synchronization, handling of I/O, and networking.
However, the class does not place prerequisites for admission: the class activities aid students to refresh their prior knowledge.
Target skills and knowledge: The class has two complementary goals:
1) to illustrate the challenges presented by the design and the programmatic use of software-implemented concurrency (as opposed to hardware-supported parallelism), studying the run-time systems of mainstream concurrent programming languages (including Ada and Java) as vehicles for practical assignments and discussions;
2) to study and explore the main architectural paradigms for the design and implementation of increasingly large-scale distributed systems, up to and including the basics of Cloud Computing, all seen from the perspective of the run-time support.
Examination methods: The exam consists in the write-up and presentation of a technical report that discusses the issues involved with and the solutions adopted in the development of an assignment (either the study of an innovative research challenge or a practical design and implementation exercise) proposed by the instructor and agreed to by the student.
Assessment criteria: The execution of the assignment involves frequent and intense dialogue with the instructor. The study involved in that effort allows the student to acquire increasing familiarity with the principal challenges posed by the design and implementation of a distributed concurrent and parallel system.
Producing a technical report to accompany the project work stimulates the student’s capacity for synthesis, vision, and abstraction. The student’s presentation of the project work and of the accompanying report allows the instructor to complete the assessment of the student’s understanding of the main themes of the class, including the student’s mastering of the related implementation technology.
Course unit contents: Concurrency
- Introduction: how concurrency came about and how to understand it
- Processes, communication, and synchronization
- A concrete model of concurrency and some desirable extensions
- The timing dimension
- Virtualization (brief)
- Introduction: definitions and fundamental challenges
- Communication, synchronization, and concurrency in a distributed system
- The naming system and the notion of statelessness
- Example technologies: Java RMI; Ada DSA, CORBA
The frontier of Cloud Computing
- Origin and motivation
- The distinguishing traits of cloud-native applications
- The dimensions of scalability.
Planned learning activities and teaching methods: The class includes two main segments, and a third and final stretch.
- The first segment focuses on concurrency with special emphasis on the construction of models of concurrency directly supported by such programming languages as Java and Ada, with exploration of other emerging language paradigms.
- The second segment addresses distribution, reviewing the progress in the state of the art from socket-based systems to modern middleware, via CORBA, up to and including traditional client-server heterogeneous systems.
- The third and final stretch concludes the class trajectory by looking at recent, advanced paradigms such as virtualization and cloud computing.
The analysis of each such subject is complemented by the discussion of practical examples, first illustrated in the class by the instructor and subsequently developed by the students in full autonomy.
Additional notes about suggested reading: The instructor publishes regularly of the slide decks used for lecturing, along with additional material that aids the students' understanding of the topics addressed in the class.
Textbooks (and optional supplementary readings)
  • Alan Burns and Andy Wellings, Concurrent and Real-Time Programming in Ada. --: Cambridge University Press, 2007. Cerca nel catalogo
  • Andrew S Tanenbaum, Maarten van Steen, Distributed Systems - Principles and paradigms. --: Pearson Education International, 2006. Cerca nel catalogo

Innovative teaching methods: Teaching and learning strategies
  • Problem based learning
  • Case study
  • Working in group
  • Flipped classroom

Sustainable Development Goals (SDGs)
Industry, Innovation and Infrastructure