Fondamenti di programmazione, E. Vicario, Editrice Esculapio
C++. Fondamenti di programmazione, H.M. Deitel, P.J. Deitel, Apogeo
C++ La guida completa, H. Schildt, McGraw-Hill
Design patterns, Gamma, Helm, Johnson, Vlissides, Pearson Education
Materiale presente sul sito web del corso (http://www.dsi.unifi.it/~bertini).
Obiettivi Formativi
Acquisire le conoscenze di base per la programmazione object oriented e di design pattern.
Gli studenti saranno in grado di programmare secondo le tecniche object oriented in C++, avranno una conoscenza di base di meccanismi di analisi e programmazione object oriented. Verranno acquisite conoscenze relativi a pattern di progettazione del software.
Prerequisiti
La conoscenza della programmazione C è requisito fondamentale.
Metodi Didattici
Il corso prevede attività di laboratorio ed esercitazioni per il 40%, precedute da lezioni sugli argomenti che saranno oggetto della esercitazione.
Esame scritto ed orale o elaborato di programmazione
<hr align="center" size="3" >
Programma del corso
Il linguaggio C++:
-Classi e oggetti
-Data Abstraction
-Operator Overloading
-I metodi
-Class Inheritance e Multiple Inheritance
-Funzioni virtuali e classi di base astratte
-Polimorfismo
-C++ Stream Input e Output
-Template
-La gestione delle eccezioni
Meccanismi di analisi e programmazione object oriented
-incapsulamento
-delega
-inversione di responsabilita'
-sostituibilita'
-ereditarieta' di implementazione e di interfaccia
-problema della classe di base fragile
-allocazione delle risorse
-responsabilita', coesione e accoppiamento
Introduzione ai design pattern e idiomi
-RAII
Design pattern fondamentali:
-Observer
-Factory
-Adapter.