Diario delle lezioni
- 4/3/13. Presentazione del corso.
Svolto esercizio 27/3/08, #4.
Distinzione tra eccezioni verificate e non.
Richiami di aritmetica floating-point.
Conversioni implicite tra tipi base.
Il type checking.
- 7/3/13. Le relazioni di sottotipo e di assegnabilità.
L'operatore instanceof. Regole dell'overriding.
La classe Class. L'early binding.
Assegnato esercizio 30/1/08, #4.
- 11/3/13. Il late binding. Esempi di binding dinamico.
Svolto esercizio assegnato.
Le classi wrapper e l'autoboxing. Assegnato esercizio 27/11/09, #2.
- 14/3/13. Uguaglianza tra oggetti e il metodo equals.
Metodo equals ed ereditarietà.
- 18/3/13. Contratto di un metodo e l'approccio Design by Contract.
Dichiarare un contratto con JavaDoc. Contratti ed ereditarietà:
il principio di sostituzione di Liskov e la regola contro-variante.
Svolto esercizio assegnato.
Classi interne. Classi locali.
- 21/3/13. Classi anonime. Liste concatenate e iteratori. Il pattern ITERATOR.
Assegnato esercizio 21/04/2008, #1 (Triangolo).
- 25/3/13. Contratto dell'interfaccia Iterator. Clonazione di oggetti.
Regole della visibilità protected.
Svolto esercizio assegnato.
Assegnato esercizio 21/4/08, #4 (CrazyIterator).
- 3/4/13 (mercoledì). Lezione straordinaria in aula C05, ore 14:15-16:15.
Confronto e ordinamento tra oggetti.
Le interfacce Comparable e Comparator.
Proprietà di un ordinamento.
Metodi per l'ordinamento di array e liste.
Svolto esercizio 18/6/12, #1 (Point).
Assegnato esercizio 14/9/10, #1 (Time).
- 4/4/13. Interfacce grafiche. I pattern Observer, Strategy e Decorator.
Il pattern architetturale Model-View-Controller.
Svolti esercizi CrazyIterator e Time.
Assegnato esercizio 27/4/06, #3 (BinaryTreePreIterator).
- 16/4/13 (martedì). Lezione straordinaria in aula C01, ore 8:40-10:40.
Classi enumerate. Assegnato esercizio 19/6/09, #1 (Cardinal).
Introduzione alle classi parametriche.
Svolto esercizio assegnato.
- 18/4/13. Classi e metodi parametrici. Introduzione alla type inference.
La versione parametrica di Iterator e Iterable.
I pattern COMPOSITE, TEMPLATE METHOD e FACTORY METHOD.
- 22/4/13. Il ciclo for-each. La libreria Java Collection Framework.
Le interfacce Collection, List, Queue, Set e SortedSet.
Le classi LinkedList, ArrayList, HashSet e TreeSet.
Coerenza tra equals e hashCode.
Svolto esercizio assegnato (Cardinal).
- 29/4/13. Prova intercorso.
- 2/5/13. Parametri di tipo con limiti superiori.
JCF: le mappe. Interfacce Map e SortedMap,
classi HashMap e TreeMap. Esempi (isInjective).
Svolto esercizio 3/9/12, #4 (Bijection).
Assegnato esercizio 18/6/12, #3 (BoundedMap).
- 6/5/13. Discussione sulla prova intercorso.
Il parametro di tipo jolly.
Limiti superiori e inferiori per il tipo jolly.
- 9/5/13. Criteri per la scelta dell'interfaccia migliore di un metodo.
Svolto esercizio assegnato.
- 13/5/13. Implementazione dei tipi parametrici: la cancellazione.
Conseguenze della cancellazione sull'uso dei parametri di tipo.
Svolto esercizio 19/2/09, #3 (interleave).
Assegnati esercizi 7/2/11, #4 e 19/6/09, #4.
- 16/5/13. Aspetti significativi della classe Class.
Svolto esercizio
Le classi Method, Field e Constructor.
Assegnato esercizio "reset" e "superclasse".
- 20/5/13. Introduzione al multi-threading in Java.
Aspetti significativi della classe Thread.
L'interfaccia Runnable.
La disciplina delle interruzioni.
Svolto esercizio "Interruptor".
Assegnato esercizio 27/3/08, #3 (delayIterator).
- 23/5/13. Le annotazioni.
Svolti esercizi "Mystery thread", "RunOnSet" e
"delayIterator".
Sincronizzazione tra thread.
La parola chiave synchronized.
Assegnato esercizio "concurrentFilter".
- 27/5/13. Scelta del tipo dichiarato di un riferimento.
Le condition variable. Metodi wait, notify e notifyAll.
Problema produttori-consumatori.
Svolti esercizi "concurrentFilter" e "VoteBox".
Assegnato esercizio "executeInParallel".
- 30/5/13. Code bloccanti. Introduzione al Java Memory Model
(JMM).
- 3/6/13. Atomicita' e visibilita' secondo il JMM.
- 6/6/13. Riepilogo ed esercitazione: enumerazioni, scelta dell'interfaccia,
multi-threading.
|
|
|