Programma

Home

 

Docenti Programma Testi Consigliati Documentazione Downloads Esercitazioni Autovalutazione Esami Comunicazioni Corso a.a. 2008/09 Corso disattivato (fino al 2007/08)

Corso di Fondamenti di Informatica e Programmazione
Modulo di Fondamenti di Programmazione

a.a. 2012/2013 Corso di Laurea in Ingegneria Informatica

Prof. Pietro Baroni

 

Scopo del modulo. 

Scopo del modulo "Fondamenti di programmazione" e' introdurre l'allievo all'attivita' della programmazione dei calcolatori, con particolare riferimento al moderno paradigma della programmazione orientata agli oggetti. Il corso utilizza come strumento didattico il linguaggio Java, del quale vengono trattati in dettaglio tutti gli aspetti fondamentali. 
Poiche' gli obiettivi del corso includono l'acquisizione da parte dell'allievo di capacita' pratico-applicative, e' prevista una sostanziale attivita' di laboratorio.

Contenuti del corso.  

Concetti introduttivi
Caratteristiche del linguaggio Java, sua diffusione ed evoluzione. Strutturazione di semplici programmi. Definizione di classi. Definizione e assegnazione di variabili e attributi. Definizione di metodi e metodi costruttori. Convenzioni di scrittura del codice.

Tipi di dato
Tipi di dato elementari e relativi operatori. Tipi enum. Tipi di dato strutturati.  Operazioni su tipi strutturati e invocazione di metodi. Il modificatore static. Classi e oggetti standard. Package. Classi standard per I/O utente. 

Definizione di metodi
Argomenti formali e attuali. Overloading. Argomento implicito. Passaggio degli argomenti. Variabili locali. Ciclo di vita delle variabili e degli oggetti. Regole di visibilita'.

Strutture di controllo
Strutture di selezione: if-else, switch. Cicli for, while, do-while. Cicli annidati.

Progetto di classi.
Identificazione delle classi. Astrazione sui dati e sui metodi. Composizione di classi. Information hiding e modificatori di accesso. Ereditarieta'. Overriding di metodi. Polimorfismo. La classe Object. Classi astratte. La nozione di interface.

Gestione delle eccezioni
Definizione di eccezione. Classificazione e gerarchia di eccezioni. Struttura try-catch. Dichiarazione throws.

Input/Output con Stream
Stream e loro classificazione. Classi filtro. Stream di byte, di testo e di oggetti. Stream con compressione.

Ricorsione
Strutture dati ricorsive. Metodi ricorsivi. Confronto tra ricorsione e iterazione.

Programmazione generica
Classi e metodi generici. Parametri di tipo.

Strutture dati
Array e Collection. Java Collection Framework. Algoritmi operanti su array e collection. Cenni a strutture dati classiche: lista concatenata, pila, coda, albero, albero binario.