Blog e sito Web del corso di Metodologie di Programmazione (Corso di Laurea in Informatica, canale M-Z)
venerdì 31 maggio 2019
Lab del 29/05/2019: esercizi su ricorsione e design pattern
Esercizi sulla ricorsione: il labirinto del Minotauro (visita ricorsiva). Generare tutte le stringhe binarie di lunghezza n.
Lezione del 28/05/2019: design pattern (2/3)
L'Observer Pattern: un'applicazione di monitoraggio del tempo. La metafora dell'abbonamento. java.util.Observable e java.util.Observer. Reactive stream: Publisher, Subscriber, Subscription e Processor.

Lezione del 24/05/2019: i moduli e lo strategy pattern (1/3)
I moduli di Java 9. Motivazioni, parole chiave module, exports, requires, requires transitive. Utilizzo di moduli pre-Java 9 mediante classpath (unnamed module) e come moduli automatici (nel module path).
Che cos'è un design pattern. Lo Strategy Pattern: il simulatore di anatre.
Che cos'è un design pattern. Lo Strategy Pattern: il simulatore di anatre.
mercoledì 22 maggio 2019
Lab del 22/05/2019: esercizi su ricorsione
Teseo e il labirinto (a matrice). Copia ricorsiva di una stringa. Stringa generalizzata.
Lezione del 21/05/2019: I/O e reflection
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. La reflection, la classe Class, istanziare e ispezionare una classe a tempo di esecuzione.

Lezione del 17/05/2019: le eccezioni
Eccezioni. Casi tipici nella programmazione Java. Eccezioni notevoli. Perché non restituire un valore d'errore. Vantaggi e svantaggi delle eccezioni. Cosa gestire e cosa non gestire con le eccezioni. Il blocco try-catch-finally. La politica catch-or-declare: gestire o ignorare le eccezioni. Creare eccezioni personalizzate. Le parole chiave throw e throws. La classe Throwable. La gerarchia delle eccezioni in Java. Le classi Exception e Error. Eccezioni checked e unchecked. Esercizi (da svolgere a casa): SequenzaAGradini, FloppyDisk, Dizionario e Mappa, Catena di volontari.

mercoledì 15 maggio 2019
Lab del 15/05/2019: esercizi su ricorsione e generici
Stampa e generazione di stringhe binarie di lunghezza k e di stringhe arbitrarie di caratteri.
Lezione del 14/05/2016: la ricorsione; ancora sui generici
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.
Esempi: riconoscimento di una stringa palindroma, concatenazione ricorsiva di stringhe, ricerca binaria ricorsiva. Utilizzo di metodi di comodo mediante l'overloading. Strutture dati Esercizi sulla ricorsione: ricerca binaria.
Esercizi: riconoscimento di una stringa palindroma, concatenazione ricorsiva di stringhe. Utilizzo di metodi di comodo mediante l'overloading. Strutture dati ricorsive. Esercizi sulla ricorsione: generazione di tutte le combinazioni di caratteri; generazione delle permutazioni di una stringa. Labirinto con definizione ricorsiva e mediante matrice labirinto. Mutua ricorsione.
Esempi: riconoscimento di una stringa palindroma, concatenazione ricorsiva di stringhe, ricerca binaria ricorsiva. Utilizzo di metodi di comodo mediante l'overloading. Strutture dati Esercizi sulla ricorsione: ricerca binaria.
Esercizi: riconoscimento di una stringa palindroma, concatenazione ricorsiva di stringhe. Utilizzo di metodi di comodo mediante l'overloading. Strutture dati ricorsive. Esercizi sulla ricorsione: generazione di tutte le combinazioni di caratteri; generazione delle permutazioni di una stringa. Labirinto con definizione ricorsiva e mediante matrice labirinto. Mutua ricorsione.
venerdì 10 maggio 2019
Lezione del 10/05/2019: ancora sugli stream; la ricorsione
Operazioni su IntStream, DoubleStream, LongStream e passaggio da uno stream all'altro. Ottenere uno stream infinito. L'operazione intermedia flatMap. Ottenere uno stream infinito e iterare su uno stream: il metodo Stream.iterate.
IntStream.range e rangeClosed. Copiare gli stream. Importanza dell'ordine delle operazioni.
Ottimizzazione dell'ordine di esecuzione. Stream sequenziali e
paralleli.
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.
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.

Iscriviti a:
Post (Atom)


