Università di Roma "La Sapienza"
Laurea in Ingegneria Informatica
Programma del corso
Tecniche di Programmazione
A.A. 2003/04
Materiale didattico.
[1] Lezioni di Fondamenti di Informatica - Parte I: introduzione
alla programmazione in Java. Diego Calvanese, Giuseppe De Giacomo, Camil
Demetrescu, Luca Iocchi, Daniele Nardi. Esculapio, 2003.
[2] Lezioni di Fondamenti di Informatica - Parte II: tecniche
di programmazione in Java. Diego Calvanese, Giuseppe De Giacomo, Camil Demetrescu,
Luca Iocchi, Daniele Nardi. ESCULAPIO, 2003.
[3] Dispense sul costo dei programmi
e su algoritmi di ordinamento
- Costo dei programmi e algoritmi di ordinamento[3]
Modello di costo, dimensione dell'input, notazione asintotica O(f(n)), algoritmi
di ricerca sequenziale e binaria su array, algoritmi di ordinamento su array
(insertion sort, selection sort, bubble sort, merge sort, quick sort).
- Ricorsione [2]: unità 10.
Domini definiti induttivamente. Definizione di metodi ricorsivi. Gestione
della memoria a run-time. Evoluzione della pila dei record di attivazione.
Ricorsione multipla.
- Strutture collegate lineari [2]: unità 11.
Limitazioni degli array e array dinamici. Strutture collegate. Strutture collegate
lineari o liste. Operazioni sulle liste (creazione, ricerca, inserimento cancellazione,
ecc.). Realizzazione con side-effect e realizzazione funzionale di una classe
per le liste. Implementazione ricorsiva delle operazioni sulle liste.
- Alberi binari [2]: unità 12, solo paragrafi 12.1-12.4,
12.7-12.10, 12.12-12.15.
Alberi e alberi binari. Rappresentazione parentetica di alberi. Rappresentazione
collegata di alberi. Visite in profondità. Realizzazione di operazioni
tramite visite.
- Tipi astratti e loro realizzazione [2]: unità 13
e 14, escluso paragrafi 13.22-13.24.
Tipi di dati astratti. Astrazione di valori e astrazione di entità.
Realizzazione con side-effect di tipi astratti. Realizzazione funzionale di
tipi astratti. pile, code, insiemi. Esempi di realizzazione di tipi astratti
(lista, pila, coda, albero binario, tipi collezione, etc.).
- Errori nei programmi e gestione delle eccezioni [1]: unità
9.
Categorie di errori (di sintassi, di semantica, logici). Tecniche di individuazione
degli errori. Gerarchia di eccezioni e gestione degli errori tramite eccezioni
(clausola throws
, istruzioni throw
e try-catch
).
Home page del corso di Tecniche di Programmazione
della Laurea in Ingegneria Informatica dell'Università di Roma
"La Sapienza"