Algoritmi e strutture dati - Laboratorio (2006/2007)

Corso a esaurimento

Codice insegnamento
4S00013
Docente
Isabella Mastroeni
crediti
2
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Periodo
2° Q dal 8-gen-2007 al 9-mar-2007.

Per visualizzare la struttura dell'insegnamento a cui questo modulo appartiene, consultare * organizzazione dell'insegnamento

Orario lezioni

2° Q
Giorno Ora Tipo Luogo Note
venerdì 10.30 - 13.30 esercitazione Laboratorio didattico Delta  

Obiettivi formativi

Nel corso di laboratorio di Algoritmi e Strutture Dati vengono raffinate le conoscenze dello studente circa la pratica della programmazione ad oggetti, soprattutto nell'implementazione di algoritmi e strutture dati avanzate. Le lezioni sono svolte in linguaggio Java di cui si assume una conoscenza di base.

Programma

Lezione 1: Uso del meccanismo dell'Interfaccia. Esempio di applicazione con l'implementazione dell'ADT Lista, Coda e Pila.

Lezione 2: Uso dell'interfaccia Comparable. Implementazione degli algoritmi di ordinamento per inserimento (InsertionSort) e per passo calante (ShellSort).

Lezione 3: Tecniche di confronto di implementazioni. Confronto tra due implementazioni di algoritmi di ordinamento: QuickSort e MergeSort.

Lezione 4: Implementazioni dell'ADT HashTable.

Lezione 5: Implementazione di un algoritmo di programmazione dinamica: ricerca massima sottosequenza comune (MaxSSC).

Lezione 6: Implementazioni dell'ADT Albero e Albero di ricerca binario. Uso dell'interfaccia Iterator. Implementazioni metodi di visita.

Lezione 7: Implementazione di un algoritmo greedy: algoritmo di Kruskal.

Modalità d'esame

L'esame di laboratorio di Algoritmi e Strutture Dati consiste di una prova scritta contenente una serie di esercizi che richiedono la conoscenza delle esercitazione fatte in laboratorio. Questo significa che le esercitazioni stesse (comprensive di tutti i concetti ad esse collegate) e variazioni di esse sono da considerarsi argomento d'esame. L'obiettivo dell'esame e' quello di verificare la capacità di formulare un algoritmo o una struttura dati nel linguaggio Java. La prova si intende superata se il candidato ottiene una valutazione di almeno 16/30. Il risultato della prova di laboratorio viene integrato con il risultato della prova di teoria secondo le modalità descritte nel modulo di teoria.