Programma dei Moduli del Corso:

Algoritmi E Strutture Dati A | Docente:
Luciano Guala'

Il corso riguarda l'analisi e la progettazione di algoritmi. L'enfasi è sugli algoritmi efficienti. Saranno presentati i principali strumenti teorici utili per l'analisi e le principali tecniche di progettazione algoritmica (tecnica greedy, divide-et-impera, programmazione dinamica). Il corso è diviso in due parti. Questo primo modulo copre: notazione asintotica, diversi metodi per stimare la complessità computazionale di algoritmi ricorsivi, il problema dell'ordinamento, strutture dati efficienti per implementare dizionari e code con priorità, e algoritmi efficienti per visitare grafi.

 




Algoritmi E Struuture Dati B | Docente:
Luciano Guala'

Questo modulo riguarda le principali tecniche di progettazione algoritmica (tecnica greedy, divide-et-impera, programmazione dinamica). Saranno presentati algoritmi per risolvere problemi di scheduling, calcolare cammini minimi (in grafi pesati), trovare un minimo albero di copertura, e calcolare la distanza di edit fra due parole. Questa parte fornisce anche un'introduzione alla teoria dell'NP-completezza vista da un punto di vista algoritmico.