Programma del corso di Algoritmi e Strutture Dati (A.A. 2011/2012) Prof. Francesco Buccafurri Introduzione Problemi e algoritmi Cenni sulla nozione di Calcolabilita’ e sulla tesi di Church-Turing. Complessità computazionale di problemi ed algoritmi (notazione O, Omega, Theta) Tipi di Dato e Strutture Dati Vettori, Matrici, Liste,Liste Ordinate, Pile, Code, Heap, Alberi Binari di Ricerca, Alberi Generali, Code di Priorita', Insiemi, Dizionari, Tabelle Hash, Vettori Associativi, Grafi Orientati e Non Orientati, Grafi Pesati, Trie. Algoritmi Fondamentali, Tecniche di Programmazione e Algoritmi su Grafi Algoritmi di Base su Grafi (Raggiungibilita' di nodi in un grafo, Componenti Connesse, Albero Ricoprente) Tecniche di Ricerca e di Ordinamento Divide et Impera (approf: Ricerca Binaria, Merge Sort, Tecniche Quadratiche di Ordinamento, Calcolo del Fattoriale, Calcolo della Successione di Fibonacci) Equazione di Ricorrenza per la definizione della complessita’ delle tecniche Divide et Impera. Tecniche Golose (Knapsack, Algoritmo di Dijkstra, Algoritmo di Prim, Implementazione con vettori e con heap indicizzato, cenni all’Algoritmo di Huffman per compressione lossless). Esempi di Applicazione alle Reti di Computer degli Algoritmi su Grafi (routing, connettivita’, etc.). Programmazione OO in Java Caratteristiche OO di Java (Incapsulamento, Ereditarietà, Polimorfismo, Template) Implementazione delle strutture dati e degli algoritmi studiati in Java. Testi di riferimento • Camil Demetrescu, Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano, Progetto di algoritmi e strutture dati in Java, McGraw-Hill. • Cormen-Leiserson-Rivest: Introduzione agli algoritmi e strutture dati 2a ediz., McGrawHill. • Ausiello, et al., Teoria e Progetto di Algoritmi Fondamentali, Franco Angeli. • A.A., Bertossi, Strutture, Algoritmi, Complessita', ECIG, Universita' di Pisa. • Cay Horstmann, Concetti di informatica e fondamenti di Java, Apogeo. • Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, Algoritmi e strutture dati 2/ed, McGraw-Hill.