Blog e sito Web del corso di Metodologie di Programmazione (Corso di Laurea in Informatica, canale M-Z)
venerdì 30 aprile 2021
Lezione del 30/04/2021 (2 ore): ancora sulle strutture dati; introduzione alle eccezioni
Lab del 28/04/2021 (2 ore + domande ed esercizi): esercizi sulla ricorsione; svolgimento dell'homework 1
Esercizi sulla ricorsione; svolgimento dell'homework 1.
martedì 27 aprile 2021
Lezione del 27/04/2021 (3 ore): la ricorsione in Java
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.
venerdì 23 aprile 2021
Lezione del 23/04/2021 (2 ore): riferimenti a metodi, interfaccia Comparator e suoi metodi
Espressioni lambda per specificare il Comparator. Riferimenti a metodi:
statici, d'istanza con riferimento, d'istanza con classe. Ordinamento
di una collection in Java 8 vs. Java 7. Metodi di default e statici
dell'interfaccia Comparator. Interfacce funzionali standard: Predicate, Function, Supplier, Consumer.
martedì 20 aprile 2021
Lezione del 20/04/2021 (3 ore): le collection
Le Collection. Gerarchia delle interfacce di tipo Collection: Iterable, Collection, List, Set, SortedSet, Queue. Tre modi per iterare su una collezione. L'interfaccia Iterator. Collezioni fondamentali: ArrayList, LinkedList, HashSet, TreeSet, HashMap, LinkedHashMap, TreeMap. Metodi di ogni collezione. ListIterator e il metodo listIterator.
sabato 17 aprile 2021
Lezione del 16/04/2021 (2 ore): interfacce funzionali, funzioni lambda
Lezione del 13/04/2021 (3 ore): interfacce, il problema del diamante, comparabilità, classi interne
Ereditarietà multipla. Il problema del diamante. Interfacce notevoli (Comparable, Comparator, Cloneable, Serializable); ordinamento tramite confronto interno (Comparable) ed esterno (Comparator). Liste linkate. List.of. Liste immutabili vs. liste mutabili.