Benvenuto/a! Se sei uno studente del corso di Metodologie di
Programmazione (prof. Navigli), segui le istruzioni qui riportate per
iscriverti: gruppo di discussione e materiale. Come ogni anno, il corso sarà aggiornatissimo, coinvolgente ed entusiasmante! Quest'anno scriveremo un videogioco che conoscete molto bene!
Blog e sito Web del corso di Metodologie di Programmazione (Corso di Laurea in Informatica, canale M-Z)
domenica 7 gennaio 2018
sabato 27 maggio 2017
Lezione del 25/5/2017: Decorator e Command; reflection; chiusura del corso
Il Decorator Pattern:
aggiungere responsabilità a una classe senza che essa lo sappia.
L'esempio della rappresentazione grafica delle automobili. Il pattern Callback. La reflection. Conclusione del corso!

mercoledì 24 maggio 2017
lunedì 22 maggio 2017
Lezione del 22/05/2017: Observer, (Simple) Factory, Builder, Singleton
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. Permettere una singola istanza per una classe: il Singleton Pattern. L'esempio di Paperino e della rete semantica. Il Builder pattern.
venerdì 19 maggio 2017
Lezione del 18/5/2017: presentazione dei progetti
Presentazione dei progetti: analisi di tweet su larga scala (TweetPro) e chatbot "intelligente" (Curiosone(TM))!

mercoledì 17 maggio 2017
Lab del 17/05/2017: esercizi su stream e ricorsione
Esercizi sulla classe Titolo utilizzando map, flatMap, filter, limit, forEach, Collectors.toList, toSet, toMap, groupingBy, mapping, joining, counting, Arrays.stream e List.stream. Interfacce funzionali: Function, Predicate, Consumer, Supplier, BiFunction, BinaryOperator, BiConsumer. MultiMappa generica, utilizzo di Supplier per creare collection. Esercizi sulla ricorsione: ricerca ricorsiva all'interno di una stringa, generazione di tutte le stringhe binarie di lunghezza k.

lunedì 15 maggio 2017
Lezione del 15/5/2017: ancora sugli stream e design pattern (1)
L'operazione intermedia flatMap. Ottenere uno stream infinito.
Copiare gli stream. Importanza dell'ordine delle operazioni.
Ottimizzazione dell'ordine di esecuzione. Stream sequenziali e
paralleli. Le mappe in Java 8. Che cos'è un design pattern. Lo Strategy Pattern: il simulatore di anatre.

venerdì 12 maggio 2017
Lezione dell'11/05/2017: ancora sugli stream e I/O
Ancora sugli stream: I Collector: joining, toList, toSet, toMap, toCollection, mapping, summingInt,
averagingInt. Operazioni intermedie: limit, skip, flatMap. L'operazione terminale reduce. Operazioni su IntStream, DoubleStream, LongStream e passaggio da uno stream all'altro. Ottenere uno stream infinito.
Input & output: gli oggetti System.out e System.in. InputStream, PrintStream e la classe Scanner. File di testo e file binari. Gli stream. Gerarchie di classi stream. Leggere e scrivere un file di testo: la classe java.io.File. BufferedReader/FileReader, BufferedWriter/FileWriter. Leggere e scrivere un file di testo formattato: le classi Formatter e Scanner. Il package java.nio: Path, Paths e Files. Serializzare e deserializzare un oggetto. L'interfaccia Serializable e il serialVersionUID. La parola chiave transient.
Input & output: gli oggetti System.out e System.in. InputStream, PrintStream e la classe Scanner. File di testo e file binari. Gli stream. Gerarchie di classi stream. Leggere e scrivere un file di testo: la classe java.io.File. BufferedReader/FileReader, BufferedWriter/FileWriter. Leggere e scrivere un file di testo formattato: le classi Formatter e Scanner. Il package java.nio: Path, Paths e Files. Serializzare e deserializzare un oggetto. L'interfaccia Serializable e il serialVersionUID. La parola chiave transient.

mercoledì 10 maggio 2017
lunedì 8 maggio 2017
Lezione dell'8/5/2017: generici (2/2); introduzione agli stream
Generici e collezioni: interfacce generiche prototipiche. Definire un metodo generico. Calcolare il massimo di una collezione di elementi di tipo generico. 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.
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.
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.
Iscriviti a:
Post (Atom)




