Corso di Algoritmi e Strutture Dati - A.A. 2007/2008

 

 

Docente: Floriana Esposito
Dipartimento di Informatica
Universita' di Bari
Via Orabona 4
70126 Bari - Italy

Tel/Fax: +39 0805443264
Email: esposito@di.uniba.it

 

 

 

Modulo 1: Algoritmi e programmi

Presentazione del corso. La produzione del software e la qualità dei programmi. Principi di progettazione e tecniche di programmazione. Il ruolo delle tecniche di astrazione nel progetto di programmi.

Modulo 2: Algebre di dati

Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica sintattica e semantica. La realizzazione

Modulo 3: Strutture lineari di dati - Liste

Il concetto di sequenza. Le Liste: specifiche e realizzazioni attraverso rappresentazioni sequenziali e collegate.

Modulo 3: Esercizi su liste

Ricerca in una lista ordinata. Fusione di liste. Ordinamento di liste.

[Top of this page]

Modulo 4: Strutture lineari di dati - Pile

Specifiche e realizzazioni mediante rappresentazioni sequenziali e collegate. Pile e procedure ricorsive.

Modulo 5: Strutture lineari di dati - Code

Specifiche e realizzazioni mediante rappresentazioni sequenziali e collegate.

Modulo 6: Insiemi

Specifiche, rappresentazione e confronto tra realizzazioni alternative

Modulo 7: Dizionari

Specifiche, rappresentazione e confronto tra realizzazioni alternative

[Top of this page]

Modulo 8: Strutture non lineari

Generalità su grafi e alberi. Alberi binari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi binari. Alberi binari di ricerca.

Modulo 8: Esercizi su Alberi (1)

La visita in ampiezza di un albero.

Modulo 9: Strutture non lineari

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

Modulo 10: Code con priorità

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Modulo 11: Strutture non lineari

Il tipo astratto grafo: specifiche sintattiche e semantiche. Realizzazioni. Visita di un grafo.

[Top of this page]

Modulo 12: Tecniche algoritmiche (1)

Classificazione dei problemi: problemi di ricerca, di decisione, di ottimizzazione. Lo spazio di ricerca: definizione e proprietà . Paradigma selettivo e paradigma generativo.

Modulo 13: Tecniche algoritmiche (2)

Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking.

Modulo 14: Tecniche algoritmiche (3)

Paradigma generativo: tecnica golosa e tecnica Divide-et-Impera.

[Top of this page]