Introduction to Programming [Cognomi A-P] (2005/2006)

Course Not running, not visible

Course code
4S00016
Credits
12
Coordinator
Andrea Masini
Other available courses
Teaching is organised as follows:
Unit Credits Academic sector Period Academic staff
Laboratorio 4 INF/01-INFORMATICS 1° Q - 1° Anno, 2° Q Isabella Mastroeni
Teoria 8 INF/01-INFORMATICS 1° Q - 1° Anno, 2° Q Andrea Masini

Learning outcomes

Il corso fornisce le nozioni di base della programmazione. In
particolare, viene descritto il linguaggio Java e alcune funzioni
della libreria Java di uso piu' frequente. Alla fine del corso, lo
studente sara' in grado di capire i programmi scritti in Java e di
scriverne di nuovi per risolvere dei semplici problemi.

Attivita' formative.

Il corso si svolge in 64 ore di lezione, distribuite su due trimestri
di 32 ore ciascuno. Si assume che lo studente segua al contempo il
corso di Laboratorio di Programmazione, in cui avra' modo di applicare
e acquisire familiarita' con quanto descritto a lezione.

Syllabus

Prima parte (ottobre-dicembre 2005)

* L'organizzazione del computer e i linguaggi di programmazione.
Java. La compilazione ed esecuzione dei programmi Java.

* Il primo programma Java. Classi, parole chiave ed identificatori.
* Metodi. print() e println(). Sequenze di escape.
* Costanti e variabili. Operazioni.
* I tipi primitivi.
* Le espressioni. Precedenze. Conversioni di tipo. Overflow e underflow.
* Programmi interattivi.
* Assegnamento.
* Incrementi e decrementi.

* Classi, oggetti e variabili.
* Inizializzazione delle variabili di tipo classe.
* Il riferimento null.
* Assegnamento fra variabili di tipo classe.
* Oggetti di tipo String e relative operazioni.

* Definizione di classi.
* Variabili di istanza. Attributi.
* Il costruttore predefinito.
* Metodi d'istanza. Parametri e valori di ritorno.

* Il tipo boolean. Operatori di ordinamento. Short-circuit.
* Le istruzioni if e if/else.
* Costrutti annidati. Indentazione.
* Il costrutto if/else/if.
* Test di uguaglianza fra oggetti. Metodo equals su stringhe.
* L'istruzione switch.

* L'istruzione while.
* L'istruzione for. Validita' della variabile indice.
* L'istruzione do/while.
* Cicli annidati.
* File di input.

Seconda parte (gennaio-marzo 2006)

* Interfacce grafiche e programmazione a eventi.
* Costruzione di una interfaccia grafica.
* I pacchetti awt e swing.

* Metodi di classe.
* Il passaggio dei parametri.
* Il riferimento this.
* Ereditarieta' e prevalenza di metodi.
* Aree di validita' dei nomi.
* Metodi sovraccarichi.

* Array: dichiarazione, creazione e accesso agli elementi.
* Inizializzazione esplicita degli array.
* Campi e metodi degli array.
* Elaborazione sugli array: creazione da input, ricerca di una chiave,
ricerca del minimo.
* Array come argomenti per metodi: parametri della riga di comando.
* Array multidimensionali.
* Collezioni: esempio di ArrayList.

* Ereditarieta' e polimorfismo.
* Uso di super nei costruttori.
* Controllo dell'accesso a campi e metodi.
* Uso di super per l'accesso ai campi.
* L'operatore instanceof e la relazione di sottoclasse.
* Il cast.
* Late binding delle chiamate di metodo.
* Metodi final.
* Classi astratte e interfacce.

* Le eccezioni: dichiarazione, lancio e intercettazione.
* La dichiarazione throws per i metodi.
* Il costrutto finally.

* I metodi ricorsivi: numeri di Fibonacci e quadrati.

* Applet. Metodi delle applet.

Assessment methods and criteria

L'esame consiste nel realizzare o modificare al calcolatore alcuni
programmi. Esso e' unificato con l'esame del corso di Laboratorio di
Programmazione. La sua valutazione tiene conto della correttezza dei
programmi, ma anche della loro semplicita', chiarezza e compilabilita'.

Ci sono due modi (non esclusivi fra loro) per superare l'esame di
Programmazione e Laboratorio di Programmazione:

1) (fortemente consigliato): superando con successo entrambe le prove
parziali che si svolgeranno il 9 dicembre 2005 e il 15 marzo 2006.

2) superando con successo uno dei sei appelli di Programmazione
e Laboratorio di Programmazione che si svolgeranno durante l'anno
accademico 2005/2006, con date che verranno pubblicizzate. Se si
consegna a uno di questi sei appelli, il voto delle prove parziali
o quello dell'appello precedente viene automaticamente invalidato.

Entrambe le modalita' d'esame richiedono l'uso del calcolatore e di
internet. Ci si assicuri quindi che il proprio account sia funzionante
e che l'uso dei comandi elementari di Linux e di un browser internet
non presenti alcun problema.

Reference books
Author Title Publisher Year ISBN Note
James Cohoon, Jack Davidson Java - Guida alla Programmazione McGraw-Hill  

Studying