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