| 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
| | |
|