CODE 101809 ACADEMIC YEAR 2022/2023 CREDITS 9 cfu anno 1 COMPUTER SCIENCE 10852 (LM-18) - GENOVA 9 cfu anno 2 COMPUTER SCIENCE 10852 (LM-18) - GENOVA 6 cfu anno 1 COMPUTER SCIENCE 10852 (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 MARINA RIBAUDO Ricevimento: By appointement at the DIBRIS Department, room 231, 2nd floor, Via Dodecaneso 25, Genova. Online on Teams in case of distance learning. E-mail: marina.ribaudo@unige.it MATTEO DELL'AMICO GIORGIO DELZANNO Ricevimento: Appointment by email 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