DIPARTIMENTO   DI   INFORMATICA
Università di Torino

Programmazione I e laboratorio - corso B - a.a. 2002-03

Programma del corso, con paragrafi da studiare sul libro di testo

Capitolo 1 – Introduzione

1.1 Che cosa è un computer?
1.2 Che cos’è la programmazione?
1.3 L’anatomia di un computer
1.4 Tradurre in codice macchina programmi leggibili dalle persone
1.5 Linguaggi di programmazione
1.6 Il linguaggio di programmazione Java
1.7 Prendere confidenza con il computer
1.8 Compilare un semplice programma
1.9 Errori
1.10 Il processo di compilazione


Le aree di memoria dell'esecutore java (vedi slides)


Capitolo 2 - Introduzione a classi e oggetti

2.1 Usare e costruire oggetti
2.2 Variabili di tipo riferimento-a-oggetto
NOTA BENE: sul libro di testo tali variabili sono chiamate variabili oggetto: si tratta di un'espressione fuorviante e non molto corretta, che non si deve usare.

2.3 Definire una classe
2.4 Provare ad usare una classe
NOTA BENE: sul libro di testo, nella traduzione italiana, viene usato il termine collaudare, non del tutto appropriato.

2.5 Variabili di istanza (instance variables), o campi non-statici, o campi degli oggetti
NOTA BENE: sul libro di testo l'espressione originale inglese instance variables è tradotta erroneamente come variabili istanza; tale espressione non deve MAI essere usata: si prega di correggere il libro, aggiungendo a mano la preposizione "di" tutte le volte in cui compare la suddetta espressione.

2.6 Costruttori
2.7 Progettare l'interfaccia pubblica di una classe
2.8 Commentare l'interfaccia pubblica
2.9 Realizzare una classe
2.10 Tipi di variabili
2.11 Metodi: parametri espliciti e parametro implicito this


Capitolo 3 – Tipi di dati fondamentali (vedi materiale didattico)

3.1 Tipi numerici, inclusi i caratteri (3.9, ma vedi materiale didattico)
3.2 Assegnazioni
3.3 Costanti
3.4 Aritmetica e funzioni matematiche
3.5 Invocare metodi statici
3.6 Conversione dei tipi di dati
3.7 Stringhe
3.8 Leggere dati in ingresso
3.10 Confronto fra tipi primitivi e tipi di riferimento a oggetto
NOTA BENE: sul libro di testo, nella traduzione italiana, il titolo del paragrafo è ERRATO


Capitolo 5 – Decisioni

5.1 L’istruzione if
5.2 Confrontare valori
5.3 Alternative multiple
5.4 Utilizzare le espressioni booleane


Capitolo 6 – Iterazioni

6.1 Cicli while
6.2 Cicli for (e cicli do)
Argomenti avanzati 6.2 (pag. 247-248): Visibilità delle variabili definite nell'intestazione del for
Errori comuni 6.3 e 6.4 (pag. 248-250)
6.3 Cicli annidati
6.4 Elaborazione dei dati in ingresso
Argomenti avanzati 6.4, 6.5, 6.6 (il problema del "ciclo e mezzo", le istruzioni break, leggere dati dalla consolle)
Argomenti avanzati 6.8: Invariante di ciclo ed esponenziale veloce; sullo stesso argomento vedere anche le slides sull'espenziale veloce
Note di cronaca 6.2: Dimostrazioni di correttezza


Capitolo 7 – Progettazione di classi

7.1 Scegliere le classi
7.3 Metodi di accesso e metodi modificatori
7.4 Effetti collaterali
7.5 Precondizioni
7.6 Metodi statici
7.7 Variabili statiche
7.8 Visibilità


Capitolo 12 – Array e vettori: solo la parte riguardante gli array

12.4 Dichiarare array e accedervi
12.5 Copiare array
12.6 Array riempiti solo in parte
Semplici algoritmi sugli array (vedi esercizi)


Capitolo 16 – Ordinamento e ricerca

16.6 Effettuare ricerche
16.7 Ricerca binaria

Ricerca del minimo (o del massimo) in un array
Il problema della bandiera tricolore (vedi lezioni)
Eliminazione di elementi in un array (vedi esercizi)
Inserimento in array ordinato (vedi lucidi ed esempi)
Introduzione agli algoritmi di ordinamento (vedi lucidi ed esempi):

  • Creazione di una copia ordinata di un array non ordinato, per inserimenti successivi.
  • Ordinamento per inserimento (senza creazione di un nuovo array) (vedi lucidi ed esempi)
  • Opzionale, sul libro di testo, ordinamento per selezione:
    16.1 Ordinamento per selezione
    16.3 Analisi delle prestazioni
  • Solo per i più bravi: ordinamento per conteggio.
Fusione di array ordinati (vedi esempi).

16.8 Esplorare e ordinare dati veri.



[Elio Giovannetti's HOME] [Corso di Laurea e Diploma in Informatica] [Department's HOME]

Last update: Nov 19, 2001