ADVANCED COMPUTER SCIENCE - MOD. 1
- Anno accademico
- 2024/2025 Programmi anni precedenti
- Titolo corso in inglese
- ADVANCED COMPUTER SCIENCE - MOD. 1
- Codice insegnamento
- CM0604 (AF:509706 AR:286757)
- Lingua di insegnamento
- Inglese
- 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
Inquadramento dell'insegnamento nel percorso del corso di studio
Si approfondiranno in particolare gli aspetti relativi alla scalabilità e alla performance del software, investigando diversi ambienti di sviluppo e acquisendo padronanza di algoritmi paralleli di data analysis e machine learning.
Alcuni casi di studio verranno scelti tra temi quali data mining, web search, e graph mining.
Risultati di apprendimento attesi
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:
i) Conoscenza e comprensione: comprensione dei concetti base del multi-threading e del calcolo distribuito; comprensione dei costi di un programma di analisi di dataset massivi parallelo e non (cache, memory) e loro modellazione; comprensione dei pattern di progettazione di algoritmi per dataset massivi.
ii) Capacità di applicare conoscenza e comprensione: capacità di progettare e sviluppare algoritmi per dataset massivi; capacità di stimare e misurare la performance di un algoritmo parallelo; capacità di sviluppare algoritmi per dataset massivi tramite l'uso dei pattern di programmazione parallela.
iii) Capacità di giudizio: 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
iv) Abilità comunicative: saper esporre in maniera chiara e corretta i risultati sperimentali di una analisi comparativa tra differenti soluzioni e algoritmi.
v) Capacità di apprendimento: saper utilizzare in autonomia nuove tecniche e strumenti.
Prerequisiti
Contenuti
- Thread Parallelism
- Large-scale parallelism
- Learning to Rank
- Graph Mining and Link Analysis
Testi di riferimento
Schmidt, Álvaro Gonzalez-Martinez, Hund, Schlarb. Parallel Programming, Concepts and Practice. Morgan Kaufmann. 2018
Jure Leskovec, Anand Rajaraman, Jeffrey David Ullman. Mining of Massive Datasets 3rd Edition. Cambridge University Press 2020.
Modalità di verifica dell'apprendimento
La prova scritta consiste in domande di carattere teorico e brevi esercizi di carattere pratico. La prova scritta valuta il raggiungimento dei risultati di apprendimento i) ii) e iii).
Ciascun assignments richiede di sviluppare un algoritmo per uno specifico problema di analysis di dataset massivi. Lo studente deve scegliere e motivare la soluzione secondo lui più opportuna e consegnare un report che verrà discusso con il docente.
Gli assignments valutano il raggiungimento dei risultati di apprendimento iii) iv) e v).
La gradazione del voto è data da 70% prova scritta e 30% assignments.
Modalità di esame
Graduazione dei voti
28-30L: ottima padronanza dei temi trattati a lezione, ottima chiarezza espositiva e ottima capacità di applicazione ai casi di studio.
23-27: buona padronanza dei temi trattati a lezione, buona chiarezza espositiva e buona capacità di applicazione ai casi di studio.
18-22: sufficiente conoscenza dei temi trattati a lezione, scarsa padronanza della terminologia e sufficiente capacità di applicazione ai casi di studio.