Esercizi sui design pattern: Singleton, Command, Strategy e Builder.
Blog e sito Web del corso di Metodologie di Programmazione (Corso di Laurea in Informatica, canale M-Z)
giovedì 28 maggio 2015
Lab 27/5/2015: esercizi in preparazione dell'esonero/esame
Esercizio sui generici (da matrice a lista) e sulla ricorsione in Java (combinazione di caratteri).
martedì 26 maggio 2015
Lezione 26/5/2015: Decorator pattern e conclusione del corso
Il Decorator Pattern: aggiungere responsabilità a una classe senza che essa lo sappia. L'esempio della rappresentazione grafica delle automobili. Conclusione del corso!
venerdì 22 maggio 2015
martedì 19 maggio 2015
giovedì 14 maggio 2015
Lezione 14/05/2015: design pattern (1)
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. Il Simple Factory e il Factory Pattern.
mercoledì 13 maggio 2015
martedì 12 maggio 2015
Lezione 12/5/2015: gli stream
La classe Optional. Gli stream: definizione; caratteristiche; operazioni intermedie e terminali. Metodi principali dell'interfaccia java.util.stream.Stream. Comportamento "pigro" (lazy) degli stream. Operazioni senza stato e con stato. Stream ottimizzati per i tipi primitivi: IntStream, DoubleStream e LongStream. Come ottenere uno stream: da elenco di valori, da una Collection, da un array, da un file. Differenza tra iterazione interna ed esterna. Metodi di Stream: min/max, filter, forEach, count, sorted, map, distinct, reduce, collect, anyMatch, allMatch, noneMatch, findFirst, findAny, mapToInt. Collectors: counting, maxBy/minBy, summingInt, averagingInt, joining, toList, toSet, groupingBy, partitioningBy. Stream paralleli. Le mappe in Java 8. Nuove API data e ora.
giovedì 7 maggio 2015
Lezione 7/5/2015: 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.
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.
mercoledì 6 maggio 2015
Lab 06/05/2015: esercizi su ricorsione e taginvaders
Ancora sulla ricorsione: mutua ricorsione. Cambio di base ricorsivo. Espansione ricorsiva di una stringa generalizzata. Percorso ricorsivo su un array di posizioni. Esercizio per casa: Labirinto con esplorazione ricorsiva con filo di Arianna(TM). Serializzazione e deserializzazione di oggetti. Checkpoint su taginvaders.
martedì 5 maggio 2015
Lezione 05/05/2015: la ricorsione
La ricorsione. Pensare ricorsivamente. Esempio: il fattoriale. Funzionamento della ricorsione: record di attivazione e stack. Non prevedere un caso base: la ricorsione infinita. Esempi: riconoscimento di una stringa palindroma, concatenazione ricorsiva di stringhe, ricerca binaria ricorsiva. Utilizzo di metodi di comodo mediante l'overloading. Strutture dati ricorsive. Esempio: visualizzare il contenuto di una cartella in forma gerarchica. Esercizio: cercare file in una cartella, somma ricorsiva di numeri. La successione di Fibonacci, efficienza e problematiche dell'implementazione ricorsiva. Esercizio: permutazioni di una stringa.
Iscriviti a:
Post (Atom)