Argomenti del programma: Il corso consiste di due moduli, uno propriamente di introduzione agli algoritmi e strutture dati e il secondo di introduzione al linguaggio Python . Gli algoritmi e le strutture dati di interesse saranno presentati con un linguaggio astratto (pseudocodice) indipendente da dettagli sintattici e nelle esercitazioni verranno poi tradotti con riferimento principalmente al linguaggio C.
Argomenti del programma: Progettazione e analisi di algoritmi. Complessita' computazionale. Ordini di grandezza. Equazioni di ricorrenza. Algoritmi di ordinamento: SelectionSort, InsertionSort, MergeSort, QuickSort, CountingSort, RadixSort. Strutture dati elementari: liste, pile e code. Alberi. Visite di alberi (pre-ordine, in-ordine, post-ordine, in ampiezza). Alberi binari di ricerca e alberi binari bilanciati di ricerca. Dizionari.