ADVANCED COMPUTER SCIENCE - MOD. 1

Anno accademico
2022/2023 Programmi anni precedenti
Titolo corso in inglese
ADVANCED COMPUTER SCIENCE - MOD. 1
Codice insegnamento
CM0604 (AF:384907 AR:214340)
Modalità
In presenza
Crediti formativi universitari
6 su 12 di ADVANCED COMPUTER SCIENCE
Livello laurea
Laurea magistrale (DM270)
Settore scientifico disciplinare
ING-INF/05
Periodo
II Semestre
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
L'obiettivo dell'insegnamento è di dare allo studente le conoscenze necessarie per la progettazione e lo sviluppo di algoritmi di analisi di grandi volumi di dati in ambienti altamente paralleli (multi-core) e distribuiti (cloud). Alcuni casi di studio verranno scelti tra temi quali data mining, web search, e social network analysis.
Il corso illustra le tecniche impiegate per risolvere problemi di analisi su grandi volumi di dati con algoritmi paralleli.
Gli studenti acquisiscono conoscenze sulle architetture di calcolo parallelo, sui paradigmi e sugli ambienti di programmazione parallela, e sulla progettazione di algoritmi per dataset massivi.

Gli studenti raggiungeranno i seguenti risultati di apprendimento:

Conoscenza e comprensione: i) comprensione dei concetti base del multi-threading e del calcolo distribuito; ii) comprensione dei costi di un programma di analisi di dataset massivi parallelo e non (cache, memory, network) e loro modellazione; iii) comprensione dei pattern di progettazione di algoritmi per dataset massivi.

Capacità di applicare conoscenza e comprensione: i) capacità di progettare e sviluppare algoritmi per dataset massivi ii) capacità di stimare e misurare la performance di un algoritmo parallelo; iii) capacità di sviluppare algoritmi per dataset massivi tramite l'uso dei pattern di programmazione parallela

Capacità di giudizio: i) capacità di analizzare e confrontare differenti metodi o algoritmi e di scegliere la più appropriata ad un dato problema sulla base di un modello di costo

Abilità comunicative: i) saper esporre in maniera esaustiva i risultati sperimentali di una analisi comparativa tra differenti soluzioni e algoritmi
Lo studente deve possedere una buona conoscenza di architettura degli elaboratori, algoritmi, programmazione C/Python, sistemi operativi.
- Cache-Aware and cache-oblivious Algorithms
- Thread Parallelism
- Large-scale parallelism
- Recommender systems
- Learning to Rank
- Link Analysis
- Advertising on the Web
Note del docente.

Jure Leskovec, Anand RajaramanJeffrey David Ullman. Mining of Massive Datasets 3rd Edition. Cambridge University Press 2020.
La verifica dell'apprendimento avviene tramite una prova scritta e l'implementazione di un progetto.

La prova scritta consiste in domande di carattere teorico sugli argementi trattati durante il corso.

Il progetto richiede di sviluppare un algoritmo per uno specifico problema di data anlysis. Lo studente deve scegliere e motivare la soluzione secondo lui più opportuna e consegnare un report che verrà discusso con il docente.

Lezioni teoriche e sessioni pratiche.
Inglese
scritto e orale
Programma definitivo.
Data ultima modifica programma: 11/07/2022