|
|
|
Metodologie di Programmazione
|
|
|
- Docente
-
Enea Zaffanella
- Collaboratore didattico
-
Roberto Bagnara
- Aula
-
Aula C (Dipartimento di Matematica, piano terra).
- Finalità
-
La programmazione orientata agli oggetti si fonda su alcuni principi
(incapsulamento, ereditarietà, polimorfismo, ecc.) che l'esperienza
ha mostrato essere fondamentali per lo sviluppo di software chiaro,
conciso, riutilizzabile e di facile manutenzione. I linguaggi di
programmazione più diffusi rendono disponibili alcuni strumenti e
tecniche che portano allo sviluppo di codice aderente ai principi
suddetti. Il corso si propone di presentare le caratteristiche
avanzate del linguaggio di programmazione C++, mostrando come un loro
utilizzo corretto e consapevole porti al raggiungimento degli
obiettivi preposti.
- Programma del corso
-
Richiami sul linguaggio C++: tipi di dato; espressioni;
istruzioni; funzioni; campo d'azione e ciclo di vita; funzioni
sovraccaricate; classi.
- Cenni sulla programmazione per contratto: pre-condizioni,
post-condizioni ed invarianti di classe.
- Inizializzazione, assegnamento e distruzione.
- Eccezioni e gestione delle risorse; tecniche per la gestione dinamica
della memoria.
- Ereditarietà semplice: differenze tra contenimento, ereditarietà
privata ed ereditarietà pubblica.
- Polimorfismo dinamico: funzioni virtuali; il principio di sostituzione
di Liskov.
- Progetto di interfacce software: tipi concreti, tipi astratti, classi
di interfaccia e classi implementative; ereditarietà multipla e
virtuale.
- Polimorfismo statico: template di funzione e template di classe.
- La libreria standard STL: contenitori, iteratori ed algoritmi
generici; oggetti funzione.
- Ambiente di sviluppo:
il compilatore g++; il debugger gdb;
automazione del processo di compilazione: make;
controllo delle versioni: cvs.
- Documentazione di interfacce software: doxygen.
- Testi consigliati
-
B. Stroustrup. C++: Linguaggio, libreria standard,
principi di programmazione, terza edizione, Addison-Wesley, 2000.
-
S. Lippman, J. Lajoie. C++: Corso di programmazione,
terza edizione, Addison-Wesley, 2000.
- Mailing list
-
Metodologie-Programmazione
|
|
|