BIG DATA COMPUTING

Obiettivi formativi

Obiettivi generali Il corso si propone di introdurre le principali tecniche algoritmiche e di programmazione nell’analisi di big data, affrontando una varietà di problemi di data mining in modelli di calcolo adatti alla gestione di grandi quantità di dati. Obiettivi specifici Capacità di analisi, modellazione, e risoluzione di problemi tipici dell'area "Big Data" attraverso l'implementazione di "pipeline" di machine learning su ambienti distribuiti tramite PySpark. Conoscenza e comprensione: Al termine del corso gli studenti avranno una comprensione dettagliata dei modelli di programmazione per l'analisi di dati distribuiti su cluster di computer, nonché di modelli computazionali avanzati per l'elaborazione di enormi quantità di dati (ad esempio, streaming di dati, parallelismo in stile MapReduce e algoritmi efficienti in memoria secondaria). Applicare conoscenza e comprensione: gli studenti saranno in grado di progettare e analizzare algoritmi per l’analisi di big data in diversi scenari, sapranno scrivere codice efficiente e scalabile tenendo conto delle caratteristiche architetturali delle moderne piattaforme di calcolo (inclusi i sistemi distribuiti), e sapranno lavorare sfruttando una varietà di sistemi software adatti al processamento di big data (tra cui Hadoop). Capacità critiche e di giudizio: gli studenti saranno in grado di capire i paradigmi di calcolo più adatti in scenari differenti, valutando vantaggi e svantaggi di ciascun modello computazionale e affrontando le sfide che si presentano nella progettazione e implementazione di una varietà di applicazioni. Capacità di comuniczione: gli studenti saranno in grado di comunicare in modo efficace, riassumendo in modo chiaro le idee principali nella progettazione di sistemi e algoritmi per l’analisi di big data e presentando informazioni tecniche accurate. Capacità di apprendimento successivo: obiettivo del corso è quello di toccare una varietà di tecniche il più possibile ampia, introducendo pratiche standard e argomenti di ricerca all'avanguardia in questo settore e consentendo quindi agli studenti di estendere le conoscenze acquisite in modo indipendente, anche in base all’evoluzione tecnologica.

Canale 1
DANIELE DE SENSI Scheda docente

Programmi - Frequenza - Esami

Programma
Introduzione - Il fenomeno "Big Data" - Infrastruttura - Datacenter e rilevanza per workloads Big Data Architettura Datacenter: Calcolo - Accenni a GPU, TPU, e altre architetture Architettura Datacenter: Rete - Limitazioni di TCP per calcoli ad alte prestazioni e su grandi quantità di dati - RDMA - Topologie di rete per datacenter - Algoritmi di controllo della congestione e routing - In-network compute: SmartNIC e switch programmabili, e loro applicazione a workload big data Architettura Datacenter: Storage - Cenni e breve introduzione Big Data Frameworks - Distributed File Systems (HDFS) - MapReduce (Hadoop) - Spark - PySpark + Google Colaboratory Apprendimento non-supervisionato: Clustering - Similarità - Algoritmi: K-means - Esempio: Clustering di documenti testuali Riduzione della dimensionalità - Feature Extraction - Algoritmi: Principal Component Analysis (PCA) - Esempio: PCA + Riconoscimento cifre Apprendimento supervisionato - Fondamenti di apprendimento automatico - Regressione/Classificazione - Algoritmi: Linear Regression/Logistic Regression/Random Forest - Esempi: - Linear Regression - Predizione prezzo vendita case - Logistic Regression/Random Forest - Predizione sottoscrizione offerta bancaria Sistemi di Raccomandazione - Content-based vs. Collaborative filtering - Algoritmi: k-NN, Matrix Factorization (MF) - Esempio: Sistema di Raccomandazione di Film (MovieLens) Analisi di Grafi - Link Analysis - Algoritmi: PageRank - Esempio: Ranking (di un estratto) del Google Web Graph Analisi di dati real-time - Streaming Data Processing - Esempio: Twitter Hate Speech Detector
Prerequisiti
Si assume che gli studenti possiedano conoscenze basilari di analisi dei dati, machine learning, architettura degli elaboratori, e reti di calcolatori. Queste conoscenze devono adeguatamente supportate da solidi fondamenti di analisi matematica, algebra lineare e calcolo delle probabilità e statistica. Gli studenti devono altresì avere capacità non banali di programmazione (preferibilmente attraverso l'uso del linguaggio Python).
Testi di riferimento
- The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines - RDMA Aware Networks Programming User Manual - Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
Frequenza
Non obbligatoria.
Modalità di esame
Per il superamento dell'esame è prevista una prova orale, su un progetto e/o presentazione di un articolo scientifico che approfondisce alcune delle tematiche studiate durante il corso. La prova orale è integrata con domande sugli argomenti affrontati nel corso.
Bibliografia
- The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines - RDMA Aware Networks Programming User Manual - Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
DANIELE DE SENSI Scheda docente

Programmi - Frequenza - Esami

Programma
Introduzione - Il fenomeno "Big Data" - Infrastruttura - Datacenter e rilevanza per workloads Big Data Architettura Datacenter: Calcolo - Accenni a GPU, TPU, e altre architetture Architettura Datacenter: Rete - Limitazioni di TCP per calcoli ad alte prestazioni e su grandi quantità di dati - RDMA - Topologie di rete per datacenter - Algoritmi di controllo della congestione e routing - In-network compute: SmartNIC e switch programmabili, e loro applicazione a workload big data Architettura Datacenter: Storage - Cenni e breve introduzione Big Data Frameworks - Distributed File Systems (HDFS) - MapReduce (Hadoop) - Spark - PySpark + Google Colaboratory Apprendimento non-supervisionato: Clustering - Similarità - Algoritmi: K-means - Esempio: Clustering di documenti testuali Riduzione della dimensionalità - Feature Extraction - Algoritmi: Principal Component Analysis (PCA) - Esempio: PCA + Riconoscimento cifre Apprendimento supervisionato - Fondamenti di apprendimento automatico - Regressione/Classificazione - Algoritmi: Linear Regression/Logistic Regression/Random Forest - Esempi: - Linear Regression - Predizione prezzo vendita case - Logistic Regression/Random Forest - Predizione sottoscrizione offerta bancaria Sistemi di Raccomandazione - Content-based vs. Collaborative filtering - Algoritmi: k-NN, Matrix Factorization (MF) - Esempio: Sistema di Raccomandazione di Film (MovieLens) Analisi di Grafi - Link Analysis - Algoritmi: PageRank - Esempio: Ranking (di un estratto) del Google Web Graph Analisi di dati real-time - Streaming Data Processing - Esempio: Twitter Hate Speech Detector
Prerequisiti
Si assume che gli studenti possiedano conoscenze basilari di analisi dei dati, machine learning, architettura degli elaboratori, e reti di calcolatori. Queste conoscenze devono adeguatamente supportate da solidi fondamenti di analisi matematica, algebra lineare e calcolo delle probabilità e statistica. Gli studenti devono altresì avere capacità non banali di programmazione (preferibilmente attraverso l'uso del linguaggio Python).
Testi di riferimento
- The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines - RDMA Aware Networks Programming User Manual - Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
Frequenza
Non obbligatoria.
Modalità di esame
Per il superamento dell'esame è prevista una prova orale, su un progetto e/o presentazione di un articolo scientifico che approfondisce alcune delle tematiche studiate durante il corso. La prova orale è integrata con domande sugli argomenti affrontati nel corso.
Bibliografia
- The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines - RDMA Aware Networks Programming User Manual - Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
GABRIELE TOLOMEI Scheda docente

Programmi - Frequenza - Esami

Programma
Introduzione - Il fenomeno "Big Data" - Infrastruttura - Distributed File Systems (HDFS) - MapReduce (Hadoop) - Spark - PySpark + Google Colaboratory Apprendimento non-supervisionato: Clustering - Similarità - Algoritmi: K-means - Esempio: Clustering di documenti testuali Riduzione della dimensionalità - Feature Extraction - Algoritmi: Principal Component Analysis (PCA) - Esempio: PCA + Riconoscimento cifre Apprendimento supervisionato - Fondamenti di apprendimento automatico - Regressione/Classificazione - Algoritmi: Linear Regression/Logistic Regression/Random Forest - Esempi: - Linear Regression - Predizione prezzo vendita case - Logistic Regression/Random Forest - Predizione sottoscrizione offerta bancaria Sistemi di Raccomandazione - Content-based vs. Collaborative filtering - Algoritmi: k-NN, Matrix Factorization (MF) - Esempio: Sistema di Raccomandazione di Film (MovieLens) Analisi di Grafi - Link Analysis - Algoritmi: PageRank - Esempio: Ranking (di un estratto) del Google Web Graph Analisi di dati real-time - Streaming Data Processing - Esempio: Twitter Hate Speech Detector
Prerequisiti
Si assume che gli studenti possiedano conoscenze basilari di analisi dei dati e machine learning, adeguatamente supportate da solidi fondamenti di analisi matematica, algebra lineare e calcolo delle probabilità e statistica. Gli studenti devono altresì avere capacità non banali di programmazione (preferibilmente attraverso l'uso del linguaggio Python).
Testi di riferimento
- Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
Modalità insegnamento
Lezioni frontali nelle quali vengono trattati sia gli aspetti teorici che pratici degli argomenti previsti dal programma del corso.
Frequenza
Non obbligatoria.
Modalità di esame
Per il superamento dell'esame è previsto lo sviluppo di un progetto software attinente ai temi trattati durante lo svolgimento del corso e concordato in anticipo con il docente. La discussione e valutazione del progetto avverrà in opportuna sede di prova orale, la quale potrà essere integrata con domande su tutti gli argomenti affrontati nel corso.
Bibliografia
- Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
Modalità di erogazione
Lezioni in aula in presenza.
GABRIELE TOLOMEI Scheda docente

Programmi - Frequenza - Esami

Programma
Introduzione - Il fenomeno "Big Data" - Infrastruttura - Distributed File Systems (HDFS) - MapReduce (Hadoop) - Spark - PySpark + Google Colaboratory Apprendimento non-supervisionato: Clustering - Similarità - Algoritmi: K-means - Esempio: Clustering di documenti testuali Riduzione della dimensionalità - Feature Extraction - Algoritmi: Principal Component Analysis (PCA) - Esempio: PCA + Riconoscimento cifre Apprendimento supervisionato - Fondamenti di apprendimento automatico - Regressione/Classificazione - Algoritmi: Linear Regression/Logistic Regression/Random Forest - Esempi: - Linear Regression - Predizione prezzo vendita case - Logistic Regression/Random Forest - Predizione sottoscrizione offerta bancaria Sistemi di Raccomandazione - Content-based vs. Collaborative filtering - Algoritmi: k-NN, Matrix Factorization (MF) - Esempio: Sistema di Raccomandazione di Film (MovieLens) Analisi di Grafi - Link Analysis - Algoritmi: PageRank - Esempio: Ranking (di un estratto) del Google Web Graph Analisi di dati real-time - Streaming Data Processing - Esempio: Twitter Hate Speech Detector
Prerequisiti
Si assume che gli studenti possiedano conoscenze basilari di analisi dei dati e machine learning, adeguatamente supportate da solidi fondamenti di analisi matematica, algebra lineare e calcolo delle probabilità e statistica. Gli studenti devono altresì avere capacità non banali di programmazione (preferibilmente attraverso l'uso del linguaggio Python).
Testi di riferimento
- Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
Modalità insegnamento
Lezioni frontali nelle quali vengono trattati sia gli aspetti teorici che pratici degli argomenti previsti dal programma del corso.
Frequenza
Non obbligatoria.
Modalità di esame
Per il superamento dell'esame è previsto lo sviluppo di un progetto software attinente ai temi trattati durante lo svolgimento del corso e concordato in anticipo con il docente. La discussione e valutazione del progetto avverrà in opportuna sede di prova orale, la quale potrà essere integrata con domande su tutti gli argomenti affrontati nel corso.
Bibliografia
- Mining of Massive Datasets [Leskovec, Rajaraman, Ullman] (available online) - Big Data Analysis with Python [Marin, Shukla, VK] - Large Scale Machine Learning with Python [Sjardin, Massaron, Boschetti] - Spark: The Definitive Guide [Chambers, Zaharia] - Learning Spark: Lightning-Fast Big Data Analysis [Karau, Konwinski, Wendell, Zaharia] - Hadoop: The Definitive Guide [White] - Python for Data Analysis [Mckinney]
Modalità di erogazione
Lezioni in aula in presenza.
  • Codice insegnamento1041764
  • Anno accademico2025/2026
  • CorsoComputer Science - Informatica
  • CurriculumCurriculum unico
  • Anno2º anno
  • Semestre1º semestre
  • SSDINF/01
  • CFU6