Università di Roma "La Sapienza"
Laurea in Ingegneria Informatica e Ingnegneria Automatica
Programma del corso
Fondamenti di Informatica 1
A.A. 2002/03
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] Concetti
di Informatica e fondamenti di JAVA 2 (seconda edizione). Cay S. Horstmann.
Apogeo, 2002.
- Introduzione alla programmazione ed al linguaggio Java
[1]: unità 1.
Linguaggi e compilatori, ambiente di programmazione. Oggetti e classi: il
primo programma Java. L'ambiente di elaborazione: hardware, sistema operativo.
Scrittura ed esecuzione di programmi in Java.
- Uso degli oggetti [1]: unità 2.
La classe String
, uso di metodi e costruzione di programmi. Variabili
ed assegnazioni: esempi di programmi che usano le stringhe. Creazione di oggetti.
- Definizione di metodi e classi [1]: unità 3.
Tempo di vita e visibilità delle variabili. Definizione di metodi statici.
Modello della memoria per le variabili e gli oggetti. Definizione di classi.
Costruttori. Ereditarietà. La classe Object
.
- Tipi di dato primitivi [1]: unità 4.
Tipi di dati per rappresentare numeri interi (int
, long
,
short
, byte
). Tipi di dati per rappresentare numeri
reali (double
, float
). Tipo di dato char
.
Tipo di dato boolean
. Classi wrapper. Conversioni di tipo, cast.
- Istruzioni condizionali [1]: unità 5.
Istruzione if-else
ed istruzione switch
. Espressione
condizionale.
- Istruzioni di ciclo [1]: unità 6.
Cicli definiti ed indefiniti. Istruzioni while
. Istruzione for
.
Istruzione do
. Cicli annidati.
- Array [1]: unità 7.
Definizione ed uso di array. Matrici.
- File e flussi di input/output [1]: unità 8.
Concetto di file e file di testo. Lettura da e scrittura su file. Flussi di
input/output. Lettura da flussi di input (e.g., file, tastiera, ecc.). Scrittura
su flussi di output (e.g., file, tastiera).
- 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
).
- 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.).
Home page del corso di Fondamenti di Informatica 1
della Laurea in Ingegneria Informatica e Ingegneria Automatica dell'Università
di Roma "La Sapienza"