venerdì 6 giugno 2014

Lezione 5/6/2014: Design pattern (2/2)

Il Simple Factory e il Factory Pattern. Il Decorator Pattern: aggiungere responsabilità a una classe senza che essa lo sappia. L'esempio della rappresentazione grafica delle automobili. Il Command Pattern e l'esempio della callback. Rivisitazione del pattern Iterator. Conclusione del corso!

Lab 4/6/2014: Esercizi sui design pattern

Esercizi: ArrayFlessibile con generici, Comparable e Comparator; esercizi sui pattern Observer, Singoletto e Strategy.


martedì 3 giugno 2014

Lezione 3/6/2014: Design pattern (1/2)

Che cos'è un design pattern. Lo Strategy Pattern: il simulatore di anatre. L'Observer Pattern: un'applicazione di monitoraggio del tempo. La metafora dell'abbonamento. java.util.Observable e java.util.Observer. Separare la creazione degli oggetti. Permettere una singola istanza per una classe: il Singleton Pattern. L'esempio di Paperino e della rete semantica.

giovedì 29 maggio 2014

Lezione 29/5/2014: La reflection

Introduzione alla Reflection. La classe Class. Ottenere un oggetto di tipo Class: da istanze di tipi non primitivi, da tipi primitivi, da tipi non primitivi, per nome: il metodo Class.forName. Scoprire i campi, metodi e costruttori di una classe. Esempio di uso della Reflection: creare intelligenze artificiali a tempo di esecuzione. Richiamare un determinato metodo a tempo di esecuzione.

Rilascio del codice: i file jar. Creazione di un file jar da console e con Eclipse. Jar eseguibili: il manifesto. Esecuzione di un file jar.

Lab 28/5/2014: esercizi su generici, info su progetto

Esercizi sui generici: alberi generici; coda di priorità generica. Ulteriori informazioni sul progetto.


giovedì 22 maggio 2014

Lezione 22/5/2014: generici (2) ed esercizi sui generici

Sicurezza dei generici a tempo di compilazione: confronto con gli array. Jolly come tipi generici. Esempio: metodo generico di somma. Cancellazione del tipo (type erasure). Esempio: cancellazione del tipo nella classe Coppia e nel metodo getMassimo. Esercizio: cancellazione del tipo nella classe Pila. Esercizi (esonero dell'anno scorso): multiinsieme e multimappa generici.

Lab 21/5/2014: visione scritto e progetti

Visione degli scritti. Informazioni su Lucene per il progetto PensieroProfondo e illustrazione di possibili scopi per SaGa 2.0.


Lezione 20/5/2014: Prova scritta!

Vedi subject.


giovedì 15 maggio 2014

Lezione 15/5/2014: Tipi generici (1); esercizi su interfacce notevoli e collections

Tipi generici. Definire e utilizzare una classe generica. Specificare più tipi generici. Estendere le classi generiche. Esercizio: inverti lista generica. Generici e collezioni: interfacce generiche prototipiche. Definire un metodo generico. Calcolare il massimo di una collezione di elementi di tipo generico.

Esercizi di preparazione: rendere iterabile (con Iterable) e confrontabile una pubblicazione per titolo (usando Comparable) e per numero di citazioni (usando Comparator). Comparator implementato come classe esterna, come classe annidata e come classe anonima. Importanza della corretta implementazione di Object.hashCode e equals per i Set, importanza del rendere comparabile una classe se si usano TreeSet e TreeMap.

mercoledì 14 maggio 2014

Lab 14/05/2014: Esercizi su ricorsione, I/O e Iterable/Comparable

Ancora sulla ricorsione: mutua ricorsione e ricorsione di coda. Esercizi a go-go! Cambio di base ricorsivo; sommaSottrai; Labirinto con esplorazione ricorsiva con filo di Arianna(TM). Rendere la classe Punto iterabile e la classe MyArray iterabile e comparabile. Lettura da file con Scanner e BufferedReader: Parametri, PropertyManager.