Fondamenti di Informatica


PROGRAMMA D'ESAME A.A. 2006-2007

I riferimenti riportati riguardano il testo adottato (Horstmann);
tutti i capitoli non menzionati non sono parte del programma svolto.



Rappresentazione dell'informazione (dispensa scaricabile dal sito).
Cambiamenti di base per interi e frazionari. Rappresentazione numeri interi (modulo e segno, complemento a 2 e eccesso k), numeri in virgola mobile (standard IEEE) e caratteri (codici ASCII e Unicode).

Capitolo 1: Introduzione.
Architettura del computer; il processo di compilazione e la Java virtual machine.

Capitolo 2: Utilizzare oggetti.
Tipi di dati fondamentali, nozioni di variabile e assegnazione. Oggetti, classi e metodi; parametri espliciti ed impliciti. Metodi d'accesso e metodi modificatori; riferimenti ad oggetti.

Capitolo 3: Realizzare classi.
Scatole nere e progettazione classi; interfaccia pubblica. Campi d'esemplare (variabili d'istanza), variabili locali e variabili parametro. Metodi costruttore.

Capitolo 4: Tipi di dati fondamentali.
Tipi numerici base (int, double, char, boolean, etc.) e operatori relativi. Conversioni; costanti; metodi statici. Classe String e lettura dati in ingresso.

Capitolo 6: Decisioni.
Istruzioni di ramificazione e operatori logici. Confronto tra dati numeri ed oggetti. Il riferimento null.

Capitolo 7: Iterazioni.
Istruzioni di iterazione. Saltare argomenti avanzati 7.4 e 7.5.

Capitolo 8: Vettori ed array.
Array e classe ArrayList: tutti i metodi associati. Involucri e autoimpacchettamento. Ciclo for generalizzato. Semplici algoritmi per la gestione dei vettori (contare, trova valore e massimo/minimo). Array a due dimensioni. Saltare argomenti avanzati 8.3.

Capitolo 9: Progettazione classi.
Scegliere le classi; coesione ed accoppiamento. Classi immutabili ed effetti collaterali. Chiamata con call by value. Precondizioni e postcondizioni; variabili e metodi statici; ambito di visibilità di metodo e di variabile. Saltare argomenti avanzati 9.2 e saltare da pg. 320 sino alla fine del capitolo.

Capitolo 10: Interfacce e polimorfismo.
Interfacce e nozione di firma. Conversioni tra classe e interfaccia; early e late binding. Polimorfismo. Saltare dalla sezione 10.6 compresa sino alla fine del capitolo.

Capitolo 12: Ereditarietà.
Gerarchie di ereditarietà. Ereditarietà e riscrittura di metodi e sottoclassi. Casting tra super-classe e sotto-classe. Polimorfismo. Saltare da pg. 411 a pg. 416. La classe Object ed i suoi metodi. Saltare argomenti avanzati 12.7.

Capitolo 14: Eccezioni.
Gerarchia delle eccezioni; eccezioni controllate e non controllate. Le clausole try, catch e finally. Progettazione di eccezioni.

Capitolo 15: File.
File di testo e file binari. File ad accesso casuale. Flussi di oggetti.

Capitolo 16: Ricorsione.
Nozione di ricorsione; metodi ausiliari ricorsivi. Saltare da pag. 546 sino alla fine del capitolo.

Capitolo 17: Ordinamento e ricerca.
Ordinamento per selezione, inserimento, merge e quicksort. Prestazioni e notazione O-grande. Ricerca lineare e binaria.

Capitolo 18: Introduzione alle strutture di dati.
Liste concatenate. Saltare la sezione 18.2. Dati astratti e dati concreti; pile e code.

Capitolo 19: Strutture dati avanzate.
Insiemi, mappe e tabelle hash. Saltare da pg.641 sino alla fine del capitolo.



CALENDARIO LEZIONI A.A. 2007/08

settimana 1 Introduzione al corso. Capitoli 1 e 2. Ambiente di sviluppo Nessuna esercitazione
settimana 2 Capitoli 3 e 4 Esercitazioni su semplici manipolazioni della classe Rectangle
settimana 3 Capitoli 5 e 6 Esercitazioni sulla progettazione di semplici classi e metodi
settimana 4 Prima parte del Capitolo 7 Esercitazioni sulle istruzioni di decisione e di iterazione
settimana 5 Seconda parte del Capitolo 7 Esercitazioni su array e ArrayList
settimana 6 Prima parte dei Capitoli 8 e 12 Esercitazioni su array e ArrayList
settimana 7 Seconda parte dei Capitoli 8 e 12, prima parte dei Capitoli 9 e 13 Esercitazioni su ricorsione e temi d'esame
settimana 8 Seconda parte del Capitolo 13 e prima parte del Capitolo 10; rappresentazione dell'informazione Esercitazioni su temi d'esame