INFORMATICA Programma preliminare del corso: Algoritmi e strutture dati. Preliminari: notazioni asintotiche, relazioni di ricorrenza, il teorema maestro. Introduzione agli algoritmi: problemi di correttezza e di trattabilita', l'algoritmo di Euclide e il problema del knapsack. Codici e pseudocodici. Principali algoritmi di ordinamento (bubble, insertion, merge, heap, quick, counting, bucket sort). Principali strutture dati: stack, code, liste. Hashing. Algoritmi sui grafi. Visite in ampiezza e in profondita'. Algoritmo di Dijkstra. Programmazione dinamica.