ALGORITMI AVANZATI E DISTRIBUITI
- Anno accademico
- 2025/2026 Programmi anni precedenti
- Titolo corso in inglese
- ADVANCED AND DISTRIBUTED ALGORITHMS
- Codice insegnamento
- CT0625 (AF:451360 AR:256650)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea
- Settore scientifico disciplinare
- INF/01
- Periodo
- II Semestre
- Anno corso
- 3
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
Risultati di apprendimento attesi
1 Conoscenza e comprensione
1.1 acquisire i fondamenti teorici e conoscenze avanzate su temi classici dell'informatica quali algoritmi di approssimazione, genetici, probabilistici, distribuiti e delle tecniche di ricerca locale;
1.2. acquisire conoscenze di alcune applicazioni pratiche degli algoritmi distribuiti nel campo della sicurezza e della robotica.
2. Capacità di applicare conoscenza e comprensione
2.1. sapere utilizzare le conoscenze acquisite per modellare e risolvere problemi algoritmici nel mondo reale.
3. Capacità di giudizio
3.1. sapere scegliere e analizzare l'algoritmo piu' appropriato da utilizzare in uno specifico contesto reale.
Prerequisiti
Contenuti
Algoritmi di approssimazione.
Tecniche di ricerca locale.
Algoritmi genetici.
Algoritmi probabilistici.
Algoritmi Distribuiti
- Modelli e misure di complessità
- Reti di interconnessione e proprieta' delle reti
- Diversi problemi e loro soluzione tramite algoritmi distribuiti (es: il problema del broadcast, la costruzione del distributed spanning tree, il problema dell'elezione del leader, computazioni sugli alberi, ricerche in sistemi P2P).
- Esempi di applicazioni alla sicurezza (Bitcoin) e alla robotica (mobile robots).
Testi di riferimento
[KT] Algorithm Design by Jon Kleinberg and Éva Tardos. Addison-Wesley, 2005
[S] Design and Analysis of Distributed Algorithms, Nicola Santoro, Whiley- Interscience, 2007
[L] Slides of the course
Modalità di verifica dell'apprendimento
L’orale è obbligatorio per chi ottiene un punteggio compreso tra 15 e 17 (su 30) allo scritto, mentre è facoltativo per chi raggiunge la sufficienza.
L’esame può essere superato in uno dei seguenti modi:
- con un’unica prova scritta finale;
- con due prove intermedie (se approvate dal collegio didattico): la prima a metà corso, la seconda al termine, accessibile solo dopo il superamento della prima;
- con una prova intermedia a metà corso (se approvata dal collegio didattico) relativa alla prima parte del programma, seguita da un progetto pratico sui robot,
focalizzato sugli algoritmi distribuiti. In caso di un numero eccessivo di richieste per il progetto, verrà effettuata una selezione sulla base del risultato della prova
intermedia.
Modalità di esame
Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.
Graduazione dei voti
Verranno inoltre proposte due prove intermedie durante l'anno (previa approvazione del collegio didattico), una a metà del corso e una dopo la fine del corso alla quale si accede solo con il superamento della prima prova. Il superamento di entrambe le prove esonererà dall'esame scritto. Il voto finale sarà dato dalla media dei voti delle due prove. La seconda prova potrà essere sostituita da un progetto pratico con i robot.
Metodi didattici
Altre informazioni
Il corso si terrà in lingua inglese.