- Docente: Gianluigi Zavattaro
- Crediti formativi: 6
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
- Corso: Laurea Magistrale in Informatica (cod. 5898)
-
dal 19/09/2023 al 13/12/2023
Conoscenze e abilità da conseguire
Servizi Web quali Facebook, Google, Amazon, ecc. vengono eseguiti su molteplici data center geograficamente distribuiti. In particolare, sono necessarie migliaia di calcolatori, organizzati in modo tale da realizzare sistemi tolleranti ai guasti e capaci di supportare migliaia di richieste concorrenti. Inoltre, piattaforme di questo tipo (come ad esempio Google e Amazon) offrono servizi di hosting per applicazioni di terze parti creando così i cosiddetti servizi di "cloud computing". In questo corso si tratteranno aspetti legati alla programmazione di tali sistemi considerando sia le problematiche derivanti dalla distribuzione dei dati e dei processi, sia le principali attualmente adottate quali ad esempio il modello di programmazione MapReduce.
Contenuti
Analisi delle problematiche relative alla realizzazione di applicazioni altamente concorrenti e distribuite.
Tecniche di parallelizzazione e distribuzione scalabili di dati e programmi, quali il modello di programmazione MapReduce.
Approccio funzionale alla realizzazione di sistemi scalabili tramite linguaggi e framework quali Scala e Spark.
Piattaforme cloud per l’esecuzione di applicazioni scalabili quali Amazon Web Services (AWS) e Google Cloud Platform (GCP).
Testi/Bibliografia
Programming in Scala (3rd edition)
Martin Odersky, Lex Spoon, Bill Venners
Artima
Learning Concurrent Programming in Scala (2nd edition)
Aleksandar Prokopec
Packt Publishing
Learning Spark: Lightning-Fast Big Data Analysis
Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia
O’Reilly Modifica
Metodi didattici
Lezioni frontali ed esercitazioni.
Modalità di verifica e valutazione dell'apprendimento
Progetti di sviluppo di sistemi utilizzando le tecniche e le piattaforme discusse a lezione.
La valutazione finale sarà decisa tenendo in considerazione i seguenti fattori:
- originalità e qualità del sistema sviluppato;
- qualità della presentazione;
- conoscenza del programma del corso.
La presentazione del progetto includerà anche discussioni relative ai contenuti del programma dell'insegnamento.Strumenti a supporto della didattica
PC e proiettore.
Orario di ricevimento
Consulta il sito web di Gianluigi Zavattaro
SDGs


L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.