FONDAMENTI DI PROGRAMMAZIONE B
cod. 1000749

Anno accademico 2011/12
2° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Formazione informatica
Tipologia attività formativa
Base
52 ore
di attività frontali
6 crediti
sede:
insegnamento
in

Obiettivi formativi

Il corso si propone di fornire le basi sia teoriche che pratiche
della programmazione "orientata agli oggetti", utilizzando come linguaggio
di riferimento il linguaggio di programmazione C++.

Prerequisiti

I concetti e le tecniche di base della
programmazione imperativa forniti nel
corso di Fondamenti di Programmazione A

Contenuti dell'insegnamento

Fondamenti di programmazione. Programmazione object-oriented. Linguaggio di programmazione C++

Programma esteso

FONDAMENTI.
Paradigmi di programmazione (cenni).
Introduzione alla programmazione orientata agli oggetti. Classi, oggetti ed "incapsulamento".
"Information hiding". Ereditarieta'.
Tipi di dato astratti (ADT). Definizione e caratteristiche. ADT
in C e C++.
Tipi di dato - Utilita' dei tipi. Equivalenza di tipi. Compatibilita' e conversione di
tipo.
Gestione della memoria - Allocazione statica. Allocazione "automatica": record
d'attivazione, pila di sistema. Tempo di vita di una variabile.
Ciclo di sviluppo dei programmi (cenni) .
Modularizzazione - "Programming-in-the-large" vs. "Programming-in-the-small".
La nozione di modulo. La modularizzazione nella fase di progettazione e di
realizzazione. Classi e modularizzazione in C++. Programmi divisi in piu'
file.

LINGUAGGIO C++.
Dichiarazione di classe. Creazione di oggetti. Accesso ai campi di un oggetto.
Funzioni proprie ed invocazione di funzioni.
Inizializzazione di oggetti: costruttori.
Esempio: classe Razionale.
Overloading di funzioni ed operatori. Ridefinizione operatori di input/output.
La classe string.
Puntatori ed allocazione dinamica della memoria (new). Operazioni su puntatori.
Puntatori ed array. Esempio: classe int_vett. Ridefinizione operator[].
Ridefinizione assegnamento e costruttore di copia. Distruttori.
Parametri "const reference" e "reference return".
Gestione delle eccezioni. Motivazioni, meccanismi.
Classi parametriche (template): dichiarazione, istanziazione. Esempio:
classe pila<t>. Funzioni parametriche.
Ereditarietà: dichiarazione, ridefinizione funzioni e dati. Campi protected.
Ereditarieta' multipla (cenni).
Sviluppo di semplici programmi in C++. Librerie standard del C++ (cenni).
Progettazione ed implementazione di un'applicazione in C++.

Bibliografia

L.J. Aguilar. Fondamenti di programmazione in C++ , McGraw-Hill, 2008.

Metodi didattici

Lezioni frontali in aula e esercitazioni assistite in
laboratorio informatico

Modalità verifica apprendimento

Esame orale, piu' sviluppo e dimostrazione di
un'applicazione pratica scrita in C++

Altre informazioni

- - -