Diploma Universitario in Ingegneria Informatica

Corso di

Fondamenti di Informatica II (primo modulo)

Docente : Prof. Giuseppe De Giacomo




Materiale didattico

Testo adottato:
[T1] M. Cadoli, M. Lenzerini, P. Naggar, A. Schaerf, Fondamenti della progettazione dei programmi: principi, tecniche e loro applicazione in C++, Citta'StudiEdizioni, UTET Libreria, 1997.

Testi consigliati:
[T2] Capper, Introduzione al C++, McGraw Hill, 1997.
[T3] C. Batini, L. Carlucci Aiello, M. Lenzerini, A. Miola, A. Marchetti Spaccamela, Fondamenti di Programmazione dei Calcolatori Elettronici, Franco Angeli, 4a edizione, 1992.


Programma d'esame per l'A.A. 2000/01 (non definitivo)


 
 

Note:
(1) Le sigle T1, T2, T3 si riferiscono alla lista di testi che compongono il materiale didattico.

(2) Quando si cita un capitolo, si intende che esso si deve studiare integralmente.

(3) Il testo T2 non è obbligatorio, ma solo consigliato per approfondimenti sul linguaggio C++. Per approfondire la conoscenza del C++, un qualunque altro testo (ad esempio il manuale della Borland) che tratti gli argomenti citati è comunque accettabile.

(4) Il testo T3 può essere sostituito dal testo adottato per Fondamenti di Informatica I secondo modulo.
 
 

1. Considerazioni generali sullo sviluppo del software

Il contesto organizzativo. Il ciclo di sviluppo dei programmi. Le qualità dei programmi.

Materiale didattico T1, Cap. 1
 
 

2. La fase di progettazione

Concettualizzazione e realizzazione. Astrazione . Decomposizione. Tecniche di progettazione. Strumenti di progettazione.

Materiale didattico T1, Cap. 2
 
 

3. Elementi di base del C++

Struttura di un programma. Espressioni e istruzioni. Strutture di controllo. Tipi di dato. Funzioni.

Materiale didattico T1, Cap. 3

Consigliato: T2, Capp. 1,2,3,4,5,6,7
 
 

4. Classi in C++

Generalità. Modello run-time. Elementi privati e pubblici. Costruttori. Elementi di tipo static. Overloading di operatori. Il problema dell'interferenza. Overloading dell'assegnazione e del costruttore di copia. Distruttore. Funzioni friend. Template.

Materiale didattico T1, Cap. 4

Consigliato: T2, Capp. 8,9,10, Appendice A
 
 

5. Nozioni generali sulla modularizzazione

La nozione di modulo. Criteri per la modularizzazione. Tipi di modularizzazione. La modularizzazione nella fase di concettualizzazione. La modularizzazione nella fase di realizzazione. Schema di una metodologia basata sulla modularizzazione.

Materiale didattico T1, Cap. 9
 
 

6. Modularizzazione per tipo astratto: concettualizzazione

La specifica dei tipi astratti. La specifica di alcuni tipi astratti: boolean, coppia, pila, coda, array, lista semplice, lista, insieme, albero binario, albero, grafo. Una classificazione di tipi astratti.

Materiale didattico T1, Cap. 10
 
 

7. Rappresentazione di tipi astratti

Rappresentazioni di vettori e matrici. Rappresentazioni di liste. Rappresentazioni di insiemi. Rappresentazioni di pile e code. Rappresentazioni di alberi binari. Alberi binari di ricerca e loro rappresentazione. Rappresentazioni di alberi N-ari. Rappresentazioni di grafi.

Materiale didattico T3, Cap. 3
 
 

8. Modularizzazione per tipo astratto: realizzazione

Incapsulamento, information hiding, overloading. Dalla segnatura delle funzioni all'interfaccia di calle. La rappresentazione dei valori del tipo. Schemi realizzativi. Scelta sulla realizzazione delle operazioni. Scelta sulla condivisione di memoria. Realizzazioni funzionali con condivisione, e con side effect senza condivisione. Realizzazione delle relazioni tra moduli. Approfondimenti sulla metodologia di realizzazione di tipi astratti mediante classi.

Materiale didattico T1, Cap. 12 (Par. 12.1,12.2,12.3,12.4,12.5,12.6 - tranne 12.6.2 e 12.6.4 - 12.8)
 
 

9. L'ereditarietà

Introduzione all'ereditarietà. Ereditarietà in C++. Dichiarazione di classi derivate. Perte protetta di una classe. Tipi di derivazione. Sovrapposizione di funzioni. Costruttori e distruttori di classi derivate. Ereditarietà multipla. Uso dell'ereditarietà per la realizzazione di tipi astratti. Realizzazione della relazione is-a. Raffinamento della rappresentazione. Classe base come supporto per la rappresentazione. Altri usi della ereditarietà.

Materiale didattico T1, Capp. 5, 13

Consigliato: T2, Capp. 11,12,15
 
 

10. Esercizi e progetti su tipi astratti

Mulitiinsieme. Matrice quadrata sparsa. Insiemi di interi in un intervallo. Albero. Sportello automatico di cambio valuta. Ufficio con sportelli.

Materiale didattico T1, Cap. 14


Ritorno alla home page del corso di Fondamenti di Informatica II - primo modulo