Algorithms for massive datasets

A.A. 2026/2027
6
Crediti massimi
48
Ore totali
SSD
INFO-01/A
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 quadrimestre

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 in una prova scritta comprendente quesiti a risposta aperta, di natura teorica o applicativa, con contenuti e livello di difficoltà coerenti con gli argomenti trattati durante il corso. Durante la prova è consentita la consultazione di un formulario fornito dal docente e l'utilizzo di calcolatrici non programmabili. Non è invece consentita la consultazione di altri materiali, inclusi libri di testo, appunti personali o dispositivi elettronici quali telefoni cellulari.

La prova scritta è valutata in trentesimi e i risultati sono comunicati tramite posta elettronica. La valutazione tiene conto del livello di padronanza degli argomenti trattati, del corretto utilizzo della notazione e dei formalismi matematici e dell'appropriato impiego della terminologia tecnica.

In funzione dell'esito della prova scritta, il docente può richiedere lo svolgimento di una prova orale integrativa, finalizzata ad approfondire la valutazione della comprensione degli argomenti trattati e del livello complessivo di preparazione dello studente. Il voto finale, espresso in trentesimi, è determinato sulla base dell'esito della prova scritta e, ove prevista, della prova orale.
INFO-01/A - 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