TECHNOLOGIES FOR ADVANCED PROGRAMMING
Anno accademico 2023/2024 - Docente: SALVATORE NICOTRARisultati di apprendimento attesi
Obiettivo dell'insegnamento è fornire una generale comprensione dell’utilizzo di tecnologie avanzate utili a definire soluzioni end-to-end di analisi, gestione ed elaborazione dati in real time.
Attraverso l’utilizzo di strumenti di automatizzazione del deployment di applicazioni (docker) e di orchestrazione di processi (kubernetes), il corso introduce la modalità di ricerca e di adozione di tecnologie “on the edge” per l’analisi di ingestion di dati in tempo reale, tecniche di data pipelines, strumenti di data processing e analisi e data visualization.
Il percorso formativo porterà gli studenti a migliorare le conoscenze e le capacità di comprensione (knowledge and understanding) delle principali metodologie (best practice) del settore delle tecnologie e i framework dall’analisi digitali.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze necessarie per approntare e redigere un rapporto tecnico, scegliendo gli apparati più opportuni, realizzando un piano di lavoro e redigendo una opportuna relazione tecnica.
Autonomia di giudizio (making judgements): Attraverso esempi concreti derivanti da "comuni errori" nell'analisi e nel preprocessing dei dati, lo studente sarà in grado di elaborare autonomamente soluzioni e ovviare alle principali difficcoltà
Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito.
Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali.
Modalità di svolgimento dell'insegnamento
Lezioni Frontali con l’ausilio di PC per esercitazioni interattive.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Nessuno in particolare. PC portatile per esercitazioni.
Frequenza lezioni
Obbligatoria
Contenuti del corso
- Nozioni di Stream Processing
- Concetti di Digital Marketing
- Introduzione a Docker e Kubernetes
- Data Ingestion (Logstash, Fluentd)
- Data Streaming (Apache Kafka)
- Data Processing (Spark)
- Fondamenti di Machine Learning e classificazione, Spark MLlib, Spark NLP
- Data Indexing and Query (Elastic Search/Open Search)
- Data Visualization (Kibana /Grafana/Metabase)
- Data Catalog
Testi di riferimento
1. Slides e manuali di riferimento dei relativi framework utilizzati durante il corso.
2. Github Organization https://github.com/tapunict/
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Data Ingestion | Slides e manuali di riferimento dei relativi framework utilizzati durante il corso. |
2 | Data Processing | Slides e manuali di riferimento dei relativi framework utilizzati durante il corso. |
3 | Data Visualization | Slides e manuali di riferimento dei relativi framework utilizzati durante il corso. |
4 | Progetti | Repository di codice su github a supporto. |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Installation Day per l’installazione delle componenti utilizzate nel corso
Progetto finale di implementazione di architettura software sulla base dei contenuti del corso su una base di dati concordata.
In sede di esame gli studenti dovranno:
- Descrivere il design della soluzione tramite presentazione
- Effettuare una demo live
- Rispondere ad eventuali domande sulle componenti utilizzate
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere
Esempi di domande e/o esercizi frequenti
- Ingestion di una base dati provenenti da twitter
- Learning di un classificatore
- Definizione di Stream Processing
- Docker e Kubernetes