- 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 17/09/2024 al 18/12/2024
Conoscenze e abilità da conseguire
SAlla fine del corso gli studenti conosceranno: - le principali problematiche relative alla realizzazione di programmi altamente paralleli e distribuiti; - uno stile di programmazione, basato su concetti tipici della programmazione funzionale e object-oriented, adatto allo sviluppo di applicazioni scalabili, ovvero che possano essere facilmente messe in esecuzione su diverse architetture di calcolo, con differenti quantità di risorse di calcolo a disposizione. In particolare, gli studenti saranno in grado di: - sviluppare una applicazione tramite il linguaggio di programmazione Scala e la piattaforma Spark che possa essere messa in esecuzione su sistemi cloud quali quelli forniti da Amazon Web Services (AWS) e Google Cloud Platform (GCP).
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
Le modalità di verifica prevedono un esame scritto composto da domande aperte relative al programma del corso ed un progetto che prevede lo consegna di un sistema da sviluppare utilizzando le tecniche e le piattaforme discusse a lezione.
La valutazione finale combinerà le singole valutazioni dando peso 2/3 allo scritto e 1/3 al progetto.
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.