Algorithms for massive datasets

A.A. 2024/2025
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Inglese
Obiettivi formativi
L'insegnamento si propone di descrivere il quadro complessivo dei processi per l'elaborazione dei big data, sia per quanto riguarda le metodologie e le tecnologie applicate in tale contesto.
Risultati apprendimento attesi
Gli studenti:
- saranno in grado di utilizzare le tecnologie per la memorizzazione distribuita dei dati;
- apprenderanno il framework dell'elaborazione distribuita map-reduce e le sue principali estensioni;
- apprenderanno i principali algoritmi utilizzati per problemi classici relativi ai big data, e ad implementarli in un ambiente di elaborazione distribuito;
- saranno in grado di scegliere i metodi appropriati per risolvere problemi caratterizzati da big data.
Corso singolo

Questo insegnamento può essere seguito come corso singolo.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre

Programma
L'insegnamento tratterà le principali tecniche di elaborazione che permettono di trattare dati su larga scala, unitamente alle loro implementazioni su framework di computazione distribuita. Le lezioni considereranno i contesti applicativi tipicamente caratterizzati da quantità di dati tali da non permettere il loro trattamento utilizzando architetture e tecniche di elaborazione classiche. Per questi contesti verranno quindi analizzate delle soluzioni ad hoc. Parallelamente verranno considerate alcune tecniche di carattere generale per l'elaborazione di dati su larga scala, come per esempio quelle che ricadono nel campo del machine learning.

Più in dettaglio, verranno considerati gli argomenti che seguono.
- Preliminari tecnici e matematici.
- Cenni a MapReduce, Hadoop e Spark.
- Analisi di algoritmi MapReduce.
- Basi di dati NoSQL: MongoDB.
- Analisi di relazioni.
- Regressione.
- Regressione logistica.
- Analisi di flussi di dati.
- Deep learning.
- Clustering.
- Ricerca di elementi simili.
- Analisi di tipo market-basket.
- Gradient boosting.
- Sistemi di raccomandazione.
- Riduzione della dimensionalità.
- Embedding.
Prerequisiti
È richiesta la conoscenza degli argomenti principali di programmazione degli elaboratori, algebra lineare, analisi matematica, probabilità e statistica al livello considerato in una laurea triennale di area informatica.
Metodi didattici
Lezioni frontali
Materiale di riferimento
Libro di testo:
- Anand Rajaraman and Jeff Ullman, Mining of Massive Datasets, Cambridge University Press (ISBN:9781107015357).

Letture suggerite:
- Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia, Learning Spark. Lightning-Fast Big Data Analysis, O'Reilly, 2015 (ISBN:978-1-449-35862-4)
- Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills, Advanced Analytics with Spark. Patterns for Learning from Data at Scale, O'Reilly, 2015 (ISBN:978-1-491-91276-8)

Dispense, approfondimenti ed esempi di codice:
- https://labonline.ctu.unimi.it/
- https://malchiodi.di.unimi.it/teaching/AMD/
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di un progetto e di una prova orale, entrambi relativi agli argomenti trattati nell'insegnamento. Il progetto, riassunto in una relazione, richiede l'elaborazione di un dataset tramite applicazione critica delle tecniche descritte durante le lezioni. La valutazione del progetto, espressa in termini approvato/respinto e comunicata via mail, tiene conto del livello di padronanza degli argomenti e della chiarezza espositiva nella relazione presentata. La prova orale, alla quale si accede dopo che il progetto è stato valutato positivamente, è basata sulla discussione di alcuni argomenti trattati nell'insegnamento e sull'approfondimento di alcuni aspetti del progetto presentato. La valutazione della prova orale, espressa in trentesimi, tiene conto del livello di padronanza degli argomenti, della chiarezza espositiva e della proprietà di linguaggio.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Malchiodi Dario
Turni:
Turno
Docente: Malchiodi Dario
Docente/i
Ricevimento:
Su appuntamento
Stanza 5015 del Dipartimento di Informatica