Programma del corso di Algoritmi e Strutture Dati

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.