Informatica |
 |
Programmazione 2 - [45009] |
| Docenti del Corso |    | |
| |
| Assistenti del Corso |    | |
| |
| Anno di Corso |    | | 1 | |
| Totale Crediti |    | | 6 | |
| Periodo Didattico |    | | Secondo Semestre | |
| Obbiettivi |    | | Il corso introduce le tecniche e i costrutti della programmazione ad oggetti come una evoluzione necessaria per affrontare il problema della crescente complessità degli artefatti software. Alla fine del corso lo studente dovrà aver acquisito familiarità con i concetti di classe, oggetto, ereditarietà, polimorfismo, information hiding, binding statico e dinamico. Verranno utilizzati come linguaggi di programmazione il C++ e Java.
| |
| Programma |    | | Richiami di C++ di base: Il modello di memoria del C++, Puntatori, Reference, Funzioni, Scope delle variabili, Passaggio di parametri, Funzioni ricorsive, Arrays, Funzioni ed arrays, Stringhe, Allocazione dinamica di memoria, new e delete, memory leaks Classi e Oggetti: temi di base: Il problema dello spazio dei nomi delle funzioni, Metodi costruttori e distruttori, Il problema della visibilità delle variabil, Principio di Parna, Polimorfismo Classi e Oggetti: le soluzioni proposte da Java: Costrutti base di Java, Passaggio di parametri in Java, Classi e Oggetti in Java Classi e Oggetti: approfondimenti: La copia di oggetti, Il copy constructor, Chiamate implicite al copy constructor e al distruttore, Shallow vs. Deep copy, Concetto di friend, Uguaglianza e identità di oggetti Ereditarietà: temi di base: Overloading e overriding, Metodi virtuali, Metodi virtuali pur, Static and dynamic binding, Upcasting e downcasting, Static and dynamic downcasting, Distruttori virtuali, Cenni di modellazione UML .
| |
| Prerequisiti corso |    | | Conoscenza dei costrutti fondamentali della programmazione imperativa in C. | |
| Metodo Didattico |    | | Lezione frontale | |
| Bibliografia |    | | Bruce Eckel, Thinking in C++: Introduction to Standard C++, Prentice Hall; ISBN: 139798099 Bruce Eckel, Thinking in Java, Apogeo, ISBN: 88-7303-998-7 Materiale on line reso disponibile durante il corso
| |
|