mercoledì 27 febbraio 2019

Lab/lezione del 27/02/2019: JDK, Eclipse, JShell, tipi di dato, espressioni, assegnazione, operatori, conversioni

Oggi abbiamo completato l'introduzione al corso, fornito una panoramica sugli argomenti principali del corso (oggetti, incapsulamento, ereditarietà, polimorfismo) e parlato di tipi di dato primitivi, variabili, identificatori e letterali. Installazione di JDK ed Eclipse. Introduzione a JShell. Operatori aritmetici e booleani, operatori di confronto, operatori di assegnazione. Il main di una classe. Consapevolezza del tipo di dato. Conversione esplicita, cast esplicito, cast implicito.

Lezione del 26/02/2019: introduzione al corso

E la prima lezione è andata!!! Abbiamo introdotto Léo Ferré (io vengo da un altro mondo, da un altro quartiere, da un'altra solitudine), il corso, il linguaggio Java e gli elementi di base della programmazione orientata agli oggetti. Non dimenticatevi di iscrivervi al gruppo di discussione.



giovedì 10 gennaio 2019

Si parte!!!

Benvenuto/a! Se sei uno/a studente/essa 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 proporrò un videogioco e un task di Intelligenza Artificiale!!

lunedì 4 giugno 2018

Lezione del 01/06/2018: conclusione del corso!

Esercizio sulla ricorsione: calcolo dei cammini da un punto a un altro. Riassunto dei design pattern. Il pattern Callback. Consigli per il futuro. Conclusione del corso!

mercoledì 30 maggio 2018

Lezione 30/05/2018: esercizi su ricorsione e design pattern

Controllo ricorsivo di una stringa palindroma. Il problema delle regine. Ricerca binaria ricorsiva. Esercizi sui design pattern: Configuration con singoletto e singoletti multipli; publisher/subscriber per eventi di bottoni; strategy per l'ordinamento di sequenze; builder eager e lazy su ListaDiInteri.

martedì 29 maggio 2018

Lezione del 29/05/2018: i moduli (Java 9); decorator pattern; rassegna su input/output; serializzazione

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).


Il Decorator Pattern: aggiungere responsabilità a una classe senza che essa lo sappia. L'esempio della rappresentazione grafica delle automobili.
 
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. La parola chiave transient.

venerdì 25 maggio 2018

Lezione del 25/05/2018: Factory, Builder, Singleton

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.

mercoledì 23 maggio 2018

Lab del 23/05/2018: esercizi su ricorsione, stream e design pattern

Ricorsione: generazione di stringhe binarie con predicato filtrante; visita e stampa ricorsiva del contenuto di una cartella. Stream: l'esercizio Titolo con tutti i punti (ultima diapositiva della lezione sugli stream). Design pattern: array con ordinamento flessibile (strategy pattern).


martedì 22 maggio 2018

Lezione del 22/05/2018: design pattern; reactive stream; esercizio su ricorsione

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. Reactive stream: Publisher, Subscriber, Subscription e Processor. Esercizio sulla ricorsione: generare tutte le stringhe binarie di lunghezza n.

venerdì 18 maggio 2018

Lezione del 18/05/2018: 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  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.