en
Politecnico di Torino
Anno Accademico 2017/18
01QYDOV, 01QYDBH, 01QYDNG, 01QYDOQ, 01QYDPE
Big data: architectures and data analytics
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino
Corso di Laurea Magistrale in Ict For Smart Societies (Ict Per La Societa' Del Futuro) - Torino
Corso di Laurea Magistrale in Ingegneria Matematica - Torino
Espandi...
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Garza Paolo ORARIO RICEVIMENTO A2 IINF-05/A 40 5 15 15 7
Garza Paolo ORARIO RICEVIMENTO A2 IINF-05/A 40 5 15 15 7
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 D - A scelta dello studente A scelta dello studente
Presentazione
Nell’era dei big data i tradizionali sistemi per la gestione e l’analisi dei dati non sono più adeguati. Quindi, al fine di gestire e sfruttare la grande mole di dati eterogenei a disposizione, sono necessari nuovi modelli per i dati, nuovi paradigmi di programmazione, nuovi sistemi informatici e nuove architetture di rete.
Il corso affronta le sfide poste dai big data. In particolare, il corso coprirà le soluzioni usate per acquisire, memorizzare, interrogare e analizzare grandi moli di dati al fine di estrarre conoscenza e informazione utile. Il corso non copre solo gli aspetti di modellazione e analisi dei dati ma anche nuovi paradigmi di programmazione (ad esempio Map Reduce e Spark RDDs) e descrive come possano essere utilizzati per supportare i big data scientists durante l’estrazione di informazione utile dai dati.
Risultati di apprendimento attesi
Il corso ha l’obiettivo di fornire:
• Conoscenza delle principali caratteristiche delle infrastrutture e dei sistemi distribuiti usati per acquisire e gestire grandi moli di dati (ad esempio Hadoop e Spark)
• Capacità di scrivere programmi distribuiti per analizzare grandi moli di dati tramite nuovi paradigmi di programmazione: MapReduce e Spark Resilient Distributed Dataset
• Conoscenza delle basi di dati (relazionali e non) per la memorizzazione dei big data
Prerequisiti / Conoscenze pregresse
Competenze di programmazione a oggetti, conoscenza del linguaggio Java e conoscenza dei concetti fondamenti delle basi di dati (modello relazionale e linguaggio SQL).
Programma
Lezioni in aula (45 ore)
• Introduzione: caratteristiche dei big data, problemi e opportunità (3 ore).
• Il sistema Hadoop e il suo ecosistema: infrastruttura e componenti base (3 ore).
• Programmazione secondo il paradigma Map Reduce (10.5 ore).
• Spark: l’architettura di Spark e la programmazione basata sui Resilient Distributed Dataset (13.5 ore).
• Spark Steaming: analisi di dati streaming (4.5 ore).
• Librerie di data mining e machine learning per big data: MLlib (4.5 ore)
• Basi di dati per i Big data: modelli dei dati non relazionali, progettazione di basi di dati non relazionali (ad esempio HBase), linguaggi di interrogazione (6 ore).

Laboratori (15 ore)
• Sviluppo di applicazioni tramite l’uso di Hadoop e Spark (15 ore).
Organizzazione dell'insegnamento
Il corso consta di lezioni ed esercitazioni in aula (45 ore) e di attività di laboratorio (15 ore). Le esercitazioni in laboratorio sono relative a principali argomenti del corso (Map Reduce, Spark e MLlib). L'attività di laboratorio permette di sperimentare l'uso dei prodotti open-source più diffusi.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Testi di riferimento:
• Tom White. Hadoop, The Definitive Guide. (Third edition). O’Reilly, Yahoo Press, 2012.
• Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia. Learning Spark: Lightning-Fast Big Data Analytics. O’Reilly, 2015.
• Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills. Advanced Analytics with Spark. O’Reilly, 2014.

Sono disponibili copie dei lucidi utilizzati nelle lezioni, esempi di scritti di esame ed esercizi, e i manuali per le esercitazioni di laboratorio. Tutto il materiale didattico è scaricabile da un sito web o attraverso il portale.
Criteri, regole e procedure per l'esame
L'esame è costituito da una prova scritta della durata di 2 ore.

La prova scritta comprende due parti:
- 2 esercizi di programmazione (programmazione basata su MapReduce e RDD) da risolvere utilizzando il linguaggio di programmazione Java (27 punti totali)
- 2 domande a risposta multipla, relative a tutti gli argomenti trattati durante il corso (4 punti totali)

La valutazione degli esercizi di programmazione si basa sulla correttezza della soluzione proposta e sulla sua efficienza.
Le domande a risposta multipla sono utilizzate per valutare la comprensione dei concetti teorici presentati durante il corso.

Durante la prova gli studenti possono consultare testi e appunti.

L’esame è considerato superato se la votazione conseguita durante la prova scritta è maggiore o uguale a 18.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2017/18
Indietro