Il corso ha l'obiettivo di far acquisire le competenze teoriche e metodologiche necessarie per la progettazione e l’analisi degli algoritmi con particolare riferimento ai concetti di complessità computazionale e correttezza

Il corso prende in esame le tecniche classiche di progettazione ed analisi di un algoritmo che saranno introdotte mediante lo studio dei problemi classici di ordinamento, selezione, moltiplicazione tra matrici, ricerca della sottosequenza più lunga e code con priorità. Sarà altresì evidenziata la centralità della organizzazione dei dati nella progettazione di algoritmi efficienti, questo attraverso lo studio delle strutture dati semplici (Liste, Pile, Code, Grafi ed Alberi) e dei problemi classici della Ricerca, dell’Union Find, dell’MST e dello SP.

Lo studente, al termine dell’attività didattica, avrà conoscenza degli aspetti teorici e pratici utili per la progettazione e l’analisi degli algoritmi.