Obiettivo del modulo di Programmazione 1 (9 CFU) è fornire competenze teoriche e pratiche di programmazione orientata agli oggetti e presentare alcune tecniche avanzate di programmazione, utilizzando come linguaggio di riferimento il linguaggio C++.
Il corso si propone inoltre di fornire conoscenze di base nell'ambito della progettazione del software, utilizzando UML (Unified Modeling Language).I contenuti riguardano la Programmazione orientata agli oggetti (Il paradigma OO: concetti generali; Overloading (sovraccaricamento); Classi, oggetti, costruttori e distruttori; Operatori e overloading degli operatori. Conversioni di Tipo. Ereditarietà ed ereditarietà multipla. Operazioni di I/O e uso delle librerie standard. Polimorfismo. Classi Astratte); Programmazione generica (Concetti generali, astrazione verso genericità.Classi Template.Progettazione e linguaggio UML.Progettazione del software (cenni). Fasi della Progettazione Orientata agli Oggetti. Il linguaggio UML nella progettazione O.O. Da UML a C++); Aspetti avanzati di programmazione (Aspetti avanzati relativi all’utilizzo di puntatori, puntatori a void e puntatori a funzioni. Gestione delle eccezioni. Meccanismi di incapsulamento).E’ possibile utilizzare un qualsiasi compilatore C++ (Standard).
Si segnalano:l’ambiente di sviluppo DevC++ (GNU General Public License): DevC++
L’ambiente per piattaforma Eclipse Eclipse
1. Strutture e typedef. Record in C/C++: Concetti Base
4. Puntatori a tipi di dato strutturati. Allocazione Dinamica
5. Puntatori: aspetti avanzati
7. Asserzioni
8. Gestione delle eccezioni. Concetti base
9. Programmazione modulare: concetti base
10. Programmazione Modulare: Meccanismi e Strumenti a supporto in C/C++
12. Esercitazione: Strutture Dati Pila e Coda
13. Esercitazione. Strutture Dati: Lista Concatenata
14. Meccanismi di Incapsulamento in C++ Namespaces
15. Programmazione orientata agli oggetti. Introduzione
Valeria Vittorini è professore associato presso il Dipartimento di Informatica e Sistemistica dell’Università di Napoli “Federico II”. Laureata con lode in Matematica nel 1990, con una tesi interdisciplinare sullo sviluppo di algoritmi paralleli, ha ricevuto nel 1995 il titolo di Dottore di Ricerca in Ingegneria Elettronica ed informatica. Ricercatore presso la Facoltà di Ingegneria dal 1999, è professore associato dal 2005. Attualmente è docente dei corsi di Fondamenti di Informatica e di Programmazione 1 del Corso di Laurea in Ingegneria Informatica. La sua attività di ricerca si svolge nel settore dei metodi formali, della modellazione e dell’analisi di sistemi critici per affidabilità e sicurezza, e delle architetture orientate ai servizi (SOA), in collaborazione con studiosi di altre istituzioni di ricerca e con realtà industriali.