First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
Course unit
SC02111804, A.A. 2015/16

Information concerning the students who enrolled in A.Y. 2015/16

Information on the course unit
Degree course Second cycle degree in
SC1176, Degree course structure A.Y. 2014/15, A.Y. 2015/16
bring this page
with you
Number of ECTS credits allocated 8.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 8.0

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

Type of hours Credits Teaching
Hours of
Individual study
Practice 1.5 12 25.5 No turn
Lecture 6.5 52 110.5 No turn

Start of activities 01/10/2015
End of activities 28/01/2016
Show course schedule 2019/20 Reg.2014 course timetable

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

Prerequisites: The class subject requires 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 and handling of I/O. The class does not place prerequisites on entry.
Target skills and knowledge: The class has two complementary goals:
- to illustrate the challenges presented by the design and the programmatic use of software-implemented concurrent (as opposed to hardware-supported parallelism), using two mainstream concurrent programming languages (Java and Ada) as vehicles for practicals
- to study and explore the main architectural paradigms for the design and implementation of distributed systems.
Examination methods: The exam consists in the write-up and presentation of a technical report that discusses the issues dealt with and the solutions adopted in the development of a practical assignment. The typical assignment requires the analysis, design, implementation and verification of systematic improvements to a distributed concurrent application that meets the specification supplied by the instructor.
Assessment criteria: The practical element of the project work assigned to individual students is accompanied by frequent and intense dialogue with the instructor. The project work allows the student to acquire increasing familiarity with the principal challenges posed by the design and implementation of a distributed concurrent 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 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
- Example technologies: Java RMI; Ada DSA, CORBA
- The frontier of cloud computing (brief)
Planned learning activities and teaching methods: The class includes two complementary segments: 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; the second segment addresses distribution, reviewing the progress in the state of the art from socket-based systems to modern middleware, via CORBA. The analysis of each subject will be complemented by the discussion of practical examples, first illustrated in class by the instructor and subsequently developed by the students in full autonomy. Though briefly, the class also touches on novel advanced paradigms such as virtualization and cloud computing.
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