First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
COMPUTER SCIENCE
Course unit
CONCURRENT AND DISTRIBUTED SYSTEMS
SCP6076340, A.A. 2018/19

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course Second cycle degree in
COMPUTER SCIENCE
SC1176, Degree course structure A.Y. 2014/15, A.Y. 2018/19
N0
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 http://informatica.scienze.unipd.it/2018/laurea_magistrale
Department of reference Department of Mathematics
Mandatory attendance No
Language of instruction Italian
Branch PADOVA
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

Lecturers
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
Hours of
Individual study
Shifts
Lecture 6.0 48 102.0 No turn

Calendar
Start of activities 01/10/2018
End of activities 18/01/2019
Show course schedule 2019/20 Reg.2014 course timetable

Examination board
Board From To Members of the board
2 a.a. 2018/2019 01/10/2018 28/02/2020 VARDANEGA TULLIO (Presidente)
CRAFA SILVIA (Membro Effettivo)
BALDAN PAOLO (Supplente)
BUJARI ARMIR (Supplente)
SPERDUTI ALESSANDRO (Supplente)
1 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)
SPERDUTI ALESSANDRO (Membro Effettivo)

Syllabus
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)
Distribution
- 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
  • Working in group
  • Flipped classroom
  • Work-integrated learning