Salta al contenuto principale della pagina

DISTRIBUTED COMPUTING

CODE 101809
ACADEMIC YEAR 2022/2023
CREDITS
  • 9 cfu during the 1st year of 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • 9 cfu during the 2nd year of 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • 6 cfu during the 1st year of 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • 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

    MARINA RIBAUDO (President)

    GIORGIO DELZANNO

    MATTEO DELL'AMICO (President Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    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

    Date Time Location Type Notes
    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