PROGRAMMAZIONE III
cod. 14834

Anno accademico 2009/10
3° anno di corso - Secondo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Formazione interdisciplinare e applicativa
Tipologia attività formativa
Affine/Integrativa
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in - - -

Obiettivi formativi

La programmazione orientata agli oggetti si fondasualcuniprincipi(incapsulamento, ereditarietà, polimorfismo,ecc.)chel'esperienza hamostrato essere fondamentali per lo sviluppodisoftwarechiaro, conciso, riutilizzabile e di facile manutenzione.Ilinguaggi di programmazione più diffusi rendono disponibilialcunistrumenti e tecniche che portano allo sviluppo di codice aderenteaiprincipisuddetti. Il corso si propone di presentare lecaratteristicheavanzate del linguaggio di programmazione C++, mostrandocome un loroutilizzo corretto e consapevole porti al raggiungimentodegli obiettivipreposti.

Prerequisiti

Si assume la conoscenza del frammento imperativo del linguaggio C++.

Contenuti dell'insegnamento

<br /><br />Richiami sul linguaggio C++: tipi di dato;espressioni;istruzioni; funzioni; campo d'azione e ciclo divita;funzionisovraccaricate; classi.<br />Cenni sulla programmazione per contratto: pre-condizioni, post-condizioni ed invarianti di classe.<br />Inizializzazione, assegnamento e distruzione.<br />Eccezioni e gestione delle risorse; tecniche per la gestione dinamica della memoria.<br />Ereditarietà semplice: differenze tra contenimento, ereditarietà privata ed ereditarietà pubblica.<br />Polimorfismo dinamico: funzioni virtuali; il principio di sostituzione di Liskov.<br />Progettodiinterfacce software: tipi concreti, tipi astratti, classi diinterfacciae classi implementative; ereditarietà multipla e virtuale.<br />Polimorfismo statico: template di funzione e template di classe.<br />La libreria standard STL: contenitori, iteratori ed algoritmi generici; oggetti funzione.<br />Ambientedisviluppo: il compilatore g++; il debugger gdb; automazione delprocessodi compilazione: make; controllo delle versioni: cvs.<br />Documentazione di interfacce software: doxygen.<br /><br /><br /> 

Programma esteso

- - -

Bibliografia

<br />B. Stroustrup. C++: Linguaggio, libreria standard, principi di programmazione, terza edizione, Addison-Wesley, 2000.<br /><br />S. Lippman, J. Lajoie. C++: Corso di programmazione,<br />terza edizione, Addison-Wesley, 2000.

Metodi didattici

<br />

Modalità verifica apprendimento

- - -

Altre informazioni

- - -