CODICE 101809 ANNO ACCADEMICO 2022/2023 CFU 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 SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI 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. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Obiettivo principale di questo corso è comprendere quando ha senso passare da sistemi centralizzati a sistemi distribuiti e alcune delle scelte chiave nella loro progettazione, tenendo conto di attributi quali disponibilità, affidabilità, tolleranza ai guasti. Durante il corso verranno presentati esempi di sistemi distribuiti, in particolare sistemi peer-to-peer e applicazioni basate su blockchain. PREREQUISITI Per seguire con successo questo corso, gli studenti devono già conoscere: strutture dati e algoritmi di base le architetture client-server i protocolli di rete i principali argomenti di base di sicurezza informatica Per le attività pratiche è necessario avere buone capacità di programmazione. MODALITA' DIDATTICHE Lezioni, esercitazioni pratiche e studio a casa. PROGRAMMA/CONTENUTO Ti serve davvero un sistema distribuito? Pro e contro nella scelta: Scalabilità verticale e orizzontale Costi di comunicazione Gestione dei dati distribuiti Replicazione Codici a cancellazione e codici fontana Rendere coerenti i sistemi Il consenso bizantino Approcci moderni (ad es. Google's Spanner) Rendere veloci i sistemi: progettazione di sistemi di successo MapReduce e Hadoop Spark e Reliable Distributed Datasets Rendere decentralizzati i sistemi: peer-to-peer Ricerca dei dati nei sistemi peer-to-peer Incentivi alla cooperazione Consenso per i sistemi peer-to-peer: blockchain e registri distribuiti Hai davvero bisogno di una blockchain? Bitcoin e Proof-of-Work Modelli di consenso alternativi Ethereum: cosa c'è dietro al computer più lento del mondo TESTI/BIBLIOGRAFIA Durante il corso verranno suggeriti articoli scientifici sugli argomenti trattati durante le lezioni. DOCENTI E COMMISSIONI MARINA RIBAUDO Ricevimento: La docente riceve su appuntamento presso il DIBRIS, studio numero 231, 2 piano, Via Dodecaneso 35, Genova. In caso di didattica a distanza il ricevimento avviene su Teams. E-mail: marina.ribaudo@unige.it MATTEO DELL'AMICO GIORGIO DELZANNO Ricevimento: Su appuntamento in presenza o Teams Commissione d'esame GIORGIO DELZANNO (Presidente) MARINA RIBAUDO (Presidente) MATTEO DELL'AMICO (Presidente Supplente) LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Esame orale e discussione delle esercitazioni proposte durante il corso. MODALITA' DI ACCERTAMENTO Per ogni esercitazione verrà valutata la qualità del codice e del report, per capire le competenze tecniche acquisite dallo studente. La prova orale sugli argomenti teorici presentati durante il corso completa l'esame. Calendario appelli Data appello Orario Luogo Tipologia 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