Informazioni in aggiornamento fino al 30/06/2026 CODICE 101809 ANNO ACCADEMICO 2026/2027 CFU 6 cfu anno 1 COMPUTER SCIENCE 11964 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INFO-01/A LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre PRESENTAZIONE Questo insegnamento introduce alcuni dei principali problemi di progettazione per i sistemi distribuiti (cioè, sistemi fatti di computer in rete che comunicano e coordinano passando messaggi l'uno all'altro). Argomenti come prestazioni, disponibilità e sicurezza vengono discussi e gli studenti fanno esperienza pratica su sistemi simulati e reali. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Lo scopo dell'insegnamento è introdurre i principi fondamentali di progettazione per i sistemi distribuiti e la loro relazione con affidabilità, disponibilità e tolleranza ai guasti. Alcune architetture scelte vengono analizzate più approfonditamente. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO SPIEGARE le ragioni per utilizzare (o non utilizzare) sistemi distribuiti DISCUTERE le motivazioni chiave e le idee per soluzioni del problema del consenso distribuito RIASSUMERE alcuni risultati importanti sullo scheduling per i sistemi distribuiti DISCUTERE le principali motivazioni, problemi e soluzioni legati alla progettazione di architetture peer-to-peer SPIEGARE la progettazione di strumenti di elaborazione dati su larga scala DESCRIVERE i principi relativi alla distribuzione dei dati VALUTARE l'impatto di alcune scelte progettuali attraverso la simulazione 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; nel corso si userà prevalentemente Python. MODALITA' DIDATTICHE Lezioni ed esercitazioni pratiche. PROGRAMMA/CONTENUTO Transazioni e consenso Proprietà ACID e teorema CAP Algoritmi di consenso: Paxos, Raft Applicazioni concrete: Zookeeper, Google Cloud Spanner Code e scheduling Teoria sul problema della definizione delle priorità e dell'assegnazione del lavoro in un sistema distribuito Erasure coding Come garantire in modo efficiente la disponibilità dei dati Sistemi peer-to-peer (P2P) Tor: un sistema per consentire la comunicazione anonima Ricerca nei sistemi P2P: tabelle hash distribuite Incentivi alla cooperazione: BitTorrent Introduzione all'elaborazione dei dati su larga scala Il paradigma MapReduce La progettazione di Hapace Hadoop e Apache Spark Introduzione ai sistemi di dati distribuiti su larga scala Principi Approcci architetturali TESTI/BIBLIOGRAFIA Durante il corso verranno suggeriti articoli scientifici sugli argomenti trattati durante le lezioni. Tutto il materiale necessario per preparare il corso sarà presente su AulaWeb. DOCENTI E COMMISSIONI MATTEO DELL'AMICO Ricevimento: Su appuntamento (in presenza o online) definito per email (matteo.dellamico@unige.it). BARBARA CATANIA Ricevimento: Su appuntamento, via email o Microsoft Teams Stanza: Valle Puggia – 327 LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/11964/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Verifica svolta in laboratorio come quiz su Aulaweb e discussione orale dell'esame e degli esercizi pratici assegnati durante il corso. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11964/studenti-disabilita-dsa MODALITA' DI ACCERTAMENTO Il quiz su Aulaweb valuterà la comprensione degli argomenti trattati durante le lezioni. Per ogni compito, le competenze tecniche e la maturità acquisite dagli studenti saranno valutate durante l'esame orale. L'esame permetterà ai docenti di completare la valutazione con domande sul programma del corso. ALTRE INFORMAZIONI Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.