Laboratorio di tecnologie dell'informazione
Registro lezioni a.a. 2009-2010
22 Febbraio 2010 - 3 ore
- Introduzione al corso
- Structured vs. OO approach
- 3 Key OO concepts: ADT, inheritance, polymorphism
- objects and classes
- il linguaggio C++: storia e paradigmi di programmazione
- "Hello world" example
Lucidi:
23 Febbraio 2010 - 2 ore
Rivisitazione di "Hello world"
- differenze tra C e C++:
- namspace
- dichiarazione variabili locali
- parametri di default
- compilazione di "hello world" con Eclipse
- linee guida di stile
Lucidi:
2c. compiling-debugging hello world.pdf
1 Marzo 2010 - 3 ore
- ADT
- Incapsulazione
- Perché usare le classi
- Open-Closed Principle
- identificazione delle classi
- Single Responsibility Principle
- classi in C++
- definizione delle classi
- livelli di visibilità dei membri
Lucidi:
3. classes and objects.pdf
3b. classes and objects-software engineering methods.pdf
2 Marzo 2010 - 2 ore
- attributi
- metodo e passaggio parametri per riferimento
Lucidi:
3. classes and objects.pdf
3c. classes and objects-style guidelines.pdf
8 Marzo 2010 - 3 ore
- costruttori e distruttori
- costruttori espliciti
- chiamata dei metodi e accesso ad attributi
Lucidi:
3. classes and objects.pdf
9 Marzo 2010 - 3 ore
- membri statici
- friends
- ereditarietà
- ereditarietà pubblica, protetta e privata
Lucidi:
3. classes and objects.pdf
22 Marzo 2009 - 3 ore
Ereditarietà
- ereditarietà e inclusione
- ereditarietà pubblica e privata: relazioni
- ereditarietà: costruttori e distruttori
- polimorfismo
- metodi virtuali
Lucidi:
4. inheritance.pdf
23 Marzo 2009 - 2 ore
Ereditarietà
- metodi virtuali
- distruttori virtuali
- factory e polimorfismo
- name hiding
- fragile base class
Lucidi:
4. inheritance.pdf
29 Marzo 2009 - 3 ore
Ereditarietà
- RTTI
- ereditarietà multipla
- ereditarietà virtuale
- classi astratte
- esempio di class adapter
- const correctness
Lucidi:
4. inheritance.pdf
30 Marzo 2010 - 2 ore laboratorio:
- esercizio su classi astratte, ereditarietà, polimorfismo.
- accesso a vettore di puntatori a classe base per memorizzare oggetti di classe derivata
12 Aprile 2010 - 3 ore
- Template: funzioni e classi
Lucidi:
5. templates.pdf
13 Aprile 2010 - 2 ore laboratorio:
- Esercizi su ereditarietà, costruttori, membri statici, const
19 Aprile 2010 - 3 ore
- introduzione ad STL
- concetti base di STL: container, iteratori ed algoritmi
- tipi di container
Lucidi:
6. stl.pdf
26 Aprile 2010 - 3 ore
- iteratori
- algoritmi
- container sequenziali: vector, deque, list
- container associative: map, set, multimap, multisite
- function objects
- purge di container di puntatori
Lucidi:
6. stl.pdf
27 Aprile 2010 - 2 ore laboratorio:
- esercizi su costruttori di copia e operatore di assegnazione
3 Maggio 2010 - 3 ore
- eccezioni
- gestione risorse:
- RAII
- auto_ptr
Lucidi:
7-exceptions.pdf
8-resource management.pdf
4 Maggio 2010 - 2 ore laboratorio:
- esercitazione su STL
- esercitazione su veltro
- esercitazione su map
- esercitazione su eccezioni
10 Maggio 2010 - 3 ore
- Design patterns
- idiomi
- Class Adapter
- Object Adapter
11 Maggio 2010 - 2 ore laboratorio:
- Esercitazione su class e object adapter
17 Maggio 2010 - 3 ore:
- Observer
10-design_pattern-observer.pdf
18 maggio 2010 - 2 ore laboratorio:
- Esercizi su class adapter
- Esercizi su observer
24 Maggio 2010 - 3 ore:
- Design pattern e idiomi creazionali
- Simple Factory
- Factory Method
- Abstract Factory
25 Maggio 2010 - 2 ore laboratorio:
- Esercitazione su Factory Method
- Esercitazione su Abstract Factory
31 Maggio 2010 - 3 ore:
- Ripasso sull'intero corso