cs@parma Università degli Studi di Parma
Facoltà di Scienze MM. FF. NN.

Corso di Laurea in Informatica
Presentazione
Il corso di laurea
Scegliere Informatica
Obiettivi formativi
Sbocchi professionali
Per saperne di più ...

Insegnamenti
Piano degli studi
Corsi attivati
Docenti
Orario dei corsi
Iscrizione esami
Tesi di laurea
Mailing list

Documenti ufficiali
Organi del CdL
Regolamenti
Archivio

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
  1. B. Stroustrup. C++: Linguaggio, libreria standard, principi di programmazione, terza edizione, Addison-Wesley, 2000.
  2. S. Lippman, J. Lajoie. C++: Corso di programmazione, terza edizione, Addison-Wesley, 2000.

Mailing list
Metodologie-Programmazione
Pagina a cura di
Enea Zaffanella
[Pagina aggiornata il 01/10/2004, 10:18:32.]