Skip to main content
CODE 101809
ACADEMIC YEAR 2022/2023
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester
TEACHING MATERIALS AULAWEB

AIMS AND CONTENT

LEARNING OUTCOMES

Learning how to design high quality distributed systems, ranging from classical client-server to peer-to-peer and blockchain-based systems, and applying classical mathematical tools to measure reliability, availability, and fault tolerance.

AIMS AND LEARNING OUTCOMES

The main goal of this course is to understand when it makes sense to move from centralized to distributed systems, and some of the key choices in designing them, taking into account attributes such as availability, reliability, fault tolerance. Peer-to-peer and blockchain-based applications will be presented as examples of such systems.

PREREQUISITES

To be successful in this course, students should already know:

  • data structures and algorithms
  • client-server architectures
  • network protocols
  • basic security topics

Programming skills are required for the practical activities.

TEACHING METHODS

Lectures, practicals, and individual study.

SYLLABUS/CONTENT

When do you really need a distributed system? Pros and cons of choosing them

  • Vertical and horizontal scalability
  • Communication costs

Handling distributed data

  • Replication
  • Erasure and fountain coding

Making systems consistent

  • The classic: Byzantine consensus
  • Modern approaches (e.g., Google's Spanner)

Making systems fast: delving in the design of successful systems

  • MapReduce and Hadoop
  • Spark and Reliable Distributed Datasets

Making systems decentralized: peer-to-peer

  • Searching data in peer-to-peer systems
  • Incentives to cooperation

Consensus for peer-to-peer systems: blockchains and distributed ledgers

  • Do you really need a blockchain?
  • Bitcoin and Proof-of-Work
  • Alternative consensus models
  • Ethereum: what's cool about the world's slowest computer

RECOMMENDED READING/BIBLIOGRAPHY

Scientific papers covering the topics of the syllabus will be suggested during the course.

TEACHERS AND EXAM BOARD

Exam Board

GIORGIO DELZANNO (President)

MARINA RIBAUDO (President)

MATTEO DELL'AMICO (President Substitute)

LESSONS

Class schedule

L'orario di tutti gli insegnamenti è consultabile all'indirizzo EasyAcademy.

EXAMS

EXAM DESCRIPTION

Oral examination with discussion of the practicals assigned during the course.

ASSESSMENT METHODS

For each assignment, the quality of the code and the reports will indicate the technical skills acquired by the students.
The oral exam will allow the teachers to complete their evaluation with questions on the course program. 

Exam schedule

Data Ora Luogo Degree type Note
06/02/2023 09:00 GENOVA Esame su appuntamento
26/06/2023 09:00 GENOVA Esame su appuntamento
22/09/2023 09:00 GENOVA Esame su appuntamento