Programma del corso
Fondamenti di informatica
Ingegneria gestionale
Anno accademico 2003-2004
Questo programma è provvisorio: il programma
definitivo verrà pubblicato alla fine del corso.
- struttura del calcolatore
- memoria, CPU, dispostivi di I/O
- variabili scalari
- variabili int e double, assegnazioni,
semplici espressioni, stato della memoria durante
l'esecuzione, copia di valori da una variabile a un'altra,
la divisione intera, problema della precisione finita,
rappresentazione con mantissa ed esponente
- oggetti predefiniti
- rappresentazione di oggetti con più
caratteristiche, gli oggetti Point, creazione di un
oggetto, componenti di un oggetto, rappresentazione in
memoria di variabili e oggetti, metodi, copiare un oggetto,
oggetti Rectangle
- metodi di oggetti predefiniti
- invocare un metodo, argomenti e valore di ritorno, uso
del valore di ritorno in una espressione, metodi di
Rectangle, metodi che creano oggetti
- le stringhe
- dichiarazione e creazione, metodi, indici,
sottostringhe, concatenazione, il tipo carattere, trovare un
singolo carattere in una posizione di una stringa
- definire nuove classi senza metodi
- definizione componenti, differenza fra componenti e
variabili, uso delle nuove classi, oggetti con componenti
che sono altri oggetti, creazione prima dell'uso
- definire metodi per le nuove classi
- metodo come dispositivo (con in e out), sintassi della
definizione di metodo, esecuzione di un metodo, definire il
corpo di un metodo, punto di ritorno, l'oggetto di
invocazione, differenza variabili locali/componenti, metodi
con argomenti, differenza variabili locali/parametri
formali, metodi con valore di ritorno, come si progettano i
metodi (simulazione di esecuzione del corpo)
- programmi con input
- il metodo JOptionPane.showInputDialog
- istruzioni condizionali
- sintassi, condizioni elementari, differenza fra
assegnamento ed uguaglianza, condizioni opposte,
condizionali senza else, raffinare un algoritmo,
condizioni nidificati, blocchi=istruzioni, operatori
booleani, ambiguità sintattica dei condizionali
- cicli
- cicli definiti, unfolding di un ciclo definito, forma
generale del ciclo for, unfolding nel caso
generale, cicli con decremento e incremento diverso da uno,
istruzioni e blocchi come corpo del ciclo, ciclo
while, unfolding ciclo while, equivalenza
for-while, cicli indefiniti, il metodo del
risultato parziale, applicazione: accumulatore, principio di
induzione applicata ai cicli, condizioni necessarie per
garantire la correttezza dei cicli, operazioni logiche su
insiemi con il metodo del risultato parziale, uscire dai
cicli con break, differenza break-rendere
falsa la condizione di uscita, matrici (tavola pitagorica),
cicli nidificati, indentazione del codice, cicli
do-while
- il tipo booleano
- condizioni, variabili, operatori booleani, tavole di
verità, booleani come valori di ritorno, uso del
valore di ritorno, metodo del risultato parziale
- i file
- memoria di lavoro e di massa, file e cartelle, la classe
File, differenza fra il file e l'oggetto file,
metodi di File, lettura del file con le classi
FileReader e BufferedReader, leggere un
file fino alla fine, lettura per caratteri e per righe,
conversione stringa-intero, trovare il minimo con il metodo
del risultato parziale, scrittura su file con
FileWriter (carattere per carattere) e con
BufferedWriter (riga per riga), il metodo
flush
- la memoria e gli oggetti
- rappresentazione in memoria di variabili ed oggetti,
indirizzi di memoria (=numeri), creazione di un oggetto,
cosa succede quando si usa un oggetto, copia di valori da
una variabile all'altra, oggetti non più accessibili,
oggetti con dentro riferimenti ad altri oggetti, confronto
fra variabili, rappresentazione grafica con freccie, il
metodo equals, definire un metodo che confronta
oggetti, l'eccezione delle stringhe costanti, passaggio dei
parametri=assegnamento
- gli applet
- pagine html con il tag applet, come si scrivono
gli applet, il metodo paint, il sistema di
coordinate degli applet, disegnare linee, rettangoli, cerchi
- conversione dati scalari
- conversione, troncamento, arrotondamento
- metodi del programma
- differenza metodo del programma e delle classi
- parametri e sovraccarico
- memoria dei metodi e heap, passaggio di un oggetto a un
metodo, sovraccarico, invocazione di un metodo sovraccarico,
valore di ritorno per un metodo sovraccarico, firma di un
metodo, invocazione di un metodo all'interno della stessa
classe
- null
- rappresentazione in memoria, componenti e metodi,
oggetti non più accessibili, differenza fra
null e la stringa vuota, variabili non
inizializzate, inizializzazione automatica delle componenti
degli oggetti, passare null a un metodo che
modifica il parametro formale
- metodi statici
- sintassi, differenza metodi statici e dinamici,
somiglianza metodi statici e di programma, invocazione di un
metodo statico di un'altra classe, differenza oggetto di
invocazione-oggetto passato come parametro
- costruttori
- ridefinire il costruttore senza argomenti, creazione di
un oggetto quando il costruttore è ridefinito (cosa
succede in memoria), costruttori con argomenti, ridefinire
un costruttore con argomenti, differenza fra i metodi e i
costruttori, non trasmissione ereditaria dei costruttori,
costruttori sovraccarichi
- modificatori di accesso e incapsulamento
- sintassi, componenti private, accesso mediante metodi a
componenti private, vantaggi dell'incapsulamento, oggetti
immutabili, accessi ed ereditarietà
- array
- dichiarazione, creazione, accesso alle componenti,
rappresentazione grafica, cicli sui vettori, vettori di
oggetti, passare vettori a metodi, lunghezza di un vettore,
il metodo del risultato parziale applicato ai vettori, array
bidimensionali, argomento di main, cosa succede
quando si esegue un programma, uso degli argomenti passati a
un programma, ricerca in un vettore ordinato, creazione
statica degli array, copiare un vettore, rappresentare
insiemi usando vettori