Fondamenti di programmazione, E. Vicario, Editrice Esculapio
L.J. Aguilar, “Fondamenti di programmazione in C++”, McGraw-Hill
B. Eckel, “Thinking in C++”, disponibile gratuitamente (in versione HTML) su: http://www.mindview.net/Books/DownloadSites
Design patterns, Gamma, Helm, Johnson, Vlissides, Pearson Education
Materiale (lucidi e link aggiuntivi) presente sul sito web del corso (http://www.micc.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.