Ingegneria del Software e Laboratorio di Programmazione
Formulario della materia 53 definizioni e teoremi in una pagina
Argomenti
1Primi programmi in C++: compilazione, tipi e funzioni
- C++ - introduzione, compilazione e linking
- C++ - tipi, variabili, espressioni e dichiarazioni
- C++ - scope, namespace e librerie
- C++ - funzioni, reference e passaggio dei parametri
- C++ - chiamate a funzione e layout della memoria
Esercizi svolti
- Esercizio - Chiamata a funzione e layout della memoria (secondo appello 2021-22, teoria) Esame
- Esercizio - Hello world, variabili e funzioni (laboratorio 1)
- Esercizio - I tipi di scope in C++ (secondo appello 2021-22, teoria) Esame
- Esercizio - Passaggio per copia e per riferimento con schema dello stack (secondo appello 2022-23, teoria) Esame
- Esercizio - Quiz su constexpr, ordine di valutazione, dynamic_cast e lambda (primo appello 2022-23, quiz) Esame
- Esercizio - Quiz su conversioni, constexpr, free store e downcasting (terzo appello 2021-22, quiz) Esame
- Esercizio - Quiz su include guard, librerie dinamiche, explicit e function object (primo appello 2021-22, quiz) Esame
- Esercizio - Quiz su operatore =, dangling pointer, enumerazioni e at() (quarto appello 2021-22, quiz) Esame
- Esercizio - Quiz su record di attivazione, new[], dangling pointer e struct (terzo appello 2022-23, quiz) Esame
- Esercizio - Quiz su scope, riferimenti, conversioni e puntatori (secondo appello 2022-23, quiz) Esame
- Esercizio - Scope e durata della memorizzazione (terzo appello 2022-23, teoria) Esame
2Classi e tipi definiti dall'utente
Esercizi svolti
- Esercizio - Classe Image con buffer dinamico (terzo appello 2023-24, programmazione) Esame
- Esercizio - Helper function e la classe Book (terzo appello 2021-22, teoria) Esame
- Esercizio - La classe Complex (primo appello 2022-23, programmazione) Esame
- Esercizio - Numeri complessi (quarto appello 2023-24, programmazione) Esame
- Esercizio - Numeri razionali con classe e overloading (laboratorio 2)
- Esercizio - Rubrica di contatti con list e sort (primo appello 2023-24, programmazione) Esame
3Puntatori e memoria dinamica
Esercizi svolti
- Esercizio - Allocazione dinamica e layout della memoria (primo appello 2022-23, teoria) Esame
- Esercizio - Aritmetica dei puntatori (primo appello 2021-22, teoria) Esame
- Esercizio - Aritmetica dei puntatori (quarto appello 2022-23, teoria) Esame
- Esercizio - Array stile C, vector e la classe MyArray (terzo appello 2022-23, teoria) Esame
- Esercizio - MyVector 2.0 con buffer ridimensionabile (laboratorio 4)
- Esercizio - MyVector con memoria dinamica (laboratorio 3)
- Esercizio - Puntatori, array e passaggio dei parametri (laboratorio 3)
- Esercizio - Quiz su inizializzazione, free store, polimorfismo e passaggio di argomenti (quarto appello 2022-23, quiz) Esame
4Ciclo di vita degli oggetti e programmazione generica
Esercizi svolti
- Esercizio - Array dinamico ordinato come classe template (quarto appello 2022-23, programmazione) Esame
- Esercizio - ConvertToArray da un container STL (secondo appello 2023-24, programmazione) Esame
- Esercizio - Costruttore di default, di copia e di spostamento (quarto appello 2022-23, teoria) Esame
- Esercizio - Costruttore di default, di copia e di spostamento (terzo appello 2021-22, teoria) Esame
- Esercizio - Distruttore, copia e spostamento della classe Elements (secondo appello 2021-22, programmazione) Esame
- Esercizio - La classe template DynamicStorage (secondo appello 2022-23, programmazione) Esame
- Esercizio - MyVector 2.0 con template (laboratorio 5)
- Esercizio - Quiz e domande su spostamento, passaggio dei parametri e contenitori STL (primo appello 2023-24, teoria) Esame
- Esercizio - Shallow copy e deep copy (quarto appello 2021-22, teoria) Esame
- Esercizio - Template di classe (quarto appello 2022-23, teoria) Esame
- Esercizio - Template, specializzazione e deduzione degli argomenti (quarto appello 2021-22, teoria) Esame
5Interfaccia delle classi e progetti su più file
6Ereditarietà e polimorfismo
Esercizi svolti
- Esercizio - Ereditarietà, is-a e has-a, slicing (primo appello 2022-23, teoria) Esame
- Esercizio - Navigazione di un robot in un labirinto (laboratorio 8)
- Esercizio - Polimorfismo dinamico e statico (primo appello 2021-22, teoria) Esame
- Esercizio - Polimorfismo statico e dinamico, bounded e unbounded (secondo appello 2022-23, teoria) Esame
- Esercizio - Quiz e domande su funzioni virtuali, passaggio degli argomenti, dangling pointer e doppia deallocazione (quarto appello 2023-24, teoria) Esame
- Esercizio - Quiz e domande su polimorfismo, allocazione dinamica e garanzie sulle eccezioni (secondo appello 2023-24, teoria) Esame
7Eccezioni, RAII e smart pointer
Esercizi svolti
- Esercizio - Copiare da array a array dinamico senza delete (terzo appello 2022-23, programmazione) Esame
- Esercizio - Gerarchia MyPointer, MyUniquePointer e MySharedPointer (terzo appello 2021-22, programmazione) Esame
- Esercizio - Quiz e domande su smart pointer, function object e aritmetica dei puntatori (terzo appello 2023-24, teoria) Esame
- Esercizio - RAII e garanzie sulle eccezioni (quarto appello 2021-22, teoria) Esame
- Esercizio - RAII e garanzie sulle eccezioni (terzo appello 2022-23, teoria) Esame
- Esercizio - Smart pointer, unique_ptr e shared_ptr (primo appello 2021-22, teoria) Esame
- Esercizio - Spostare i valori di una list in un array dinamico senza delete (quarto appello 2021-22, programmazione) Esame
- Esercizio - Un unique_ptr minimo e make_unique (laboratorio 10)
8La libreria STL
- STL - sequenze, iteratori e container (vector, list, string)
- STL - algoritmi, predicati e lambda
- STL - container associativi (map e set)
Esercizi svolti
- Esercizio - Confronto tra list e vector (terzo appello 2021-22, teoria) Esame
- Esercizio - Confronto tra map e vector (secondo appello 2021-22, teoria) Esame
- Esercizio - Ordinare le parole di un file con sort e lambda (primo appello 2021-22, programmazione) Esame
- Esercizio - Predicati e algoritmi STL (primo appello 2022-23, teoria) Esame
- Esercizio - Quiz su contenitori STL, override, sizeof, void e virtual table (secondo appello 2021-22, quiz) Esame
9Ingegneria del software e Java avanzato
10Requisiti e architettura
11Responsabilità e design pattern
- Principi GRASP per l'assegnazione delle responsabilità
- Design pattern - introduzione e catalogo GoF
- Pattern creazionali - Singleton, Factory Method, Abstract Factory, Builder e Prototype
- Pattern strutturali - Adapter, Decorator, Composite, Facade e Proxy
- Pattern comportamentali - Observer, Strategy, Command, Iterator e Template Method
Esercizi svolti
- Esercizio - Abstract Factory per le ricevute di prestito (progetto originale)
- Esercizio - Adapter di classe e di oggetto per la pila (esempi del corso)
- Esercizio - Adapter e Decorator per le notifiche con un gateway SMS (progetto originale)
- Esercizio - assegnare le responsabilità con GRASP alla restituzione di un prestito (progetto originale)
- Esercizio - Design pattern, elementi e classificazione (secondo appello 2022-23, teoria) Esame
- Esercizio - Observer per le prenotazioni dei documenti (progetto originale)
- Esercizio - Singleton, thread e riflessione (esempi del corso)