Materiale didattico
Il materiale didattico a supporto del laboratorio di algoritmi e strutture dati verrà messo a disposizione su questo sito. Indicativamente, il materiale sarà raggruppato per moduli settimanali.
Prima settimana (3 e 6 ottobre 2022)
- Scheda con esercizi di riscaldamento in go
- Scheda con esercizi di problem solving
- Lucidi su esercizi di problem solving
- Sfida tratta da Advent of Code e relativo file di input: input.txt
Seconda settimana (10 e 13 ottobre 2022)
- correzione degli esercizi della prima settimana: alcune soluzioni con difetti, commentate
- Problemi ricorrenti e soluzioni paradigmatiche: slide e appunti
- A proposito di "cosa tenere in memoria e come?", un altro esercizio tratto da Advent of Code 2021: Transparent Origami (day 13)
- Scheda con esercizi sulla ricorsione - per concludere l'esercizio 4 usate il programma rec-iter.go
- Un esercizio interessante che si può risolvere usando la ricorsione è proposto da Advent of Code 2021, day 9 (seconda parte): Smoke basin
Terza settimana (17 e 20 ottobre 2022)
- Svolgimento alla lavagna degli esercizi sulla ricorsione
- Scheda con esercizi su algoritmi di ricerca e di ordinamento
Quarta settimana (24 e 27 ottobre 2022)
Liste concatenate:- Lucidi su liste concatenate (incluse le slide su cancellazione di un nodo, liste ordinate, liste doppiamente concatenate, che non abbiamo visto a lezione)
- Lucidi con annotazioni
- Scheda di esercizi sulle liste concatenate
Quinta settimana (3 novembre 2022)
- Scheda di esercizi sull'uso della pila
- Un esercizio carino da svolgere usando una pila è proposto da Advent of Code 2021, day 10 Syntax scoring. L'idea di base è la stessa dell'esercizio sul parsing dei documenti html proposta nella scheda di questa settimana.
Sesta settimana (7 e 10 novembre 2022)
- Note su slice in Go:
- Alberi:
Settima settimana (14 e 17 novembre 2022)
Ottava settimana (21, 23 e 24 novembre 2022)
- analisi di esercizi svolti su alberi
- implementazione di grafi
- scheda di esercizi su grafi
- discussione degli approcci risolutivi per le sfide di advent of code assegnate durante il laboratorio
Nona settimana (28 novembre, 1 dicembre 2022)
- Rappresentazioni alternative di grafi: lucidi, codice
- Lucidi su heap e code di priorità
Algoritmi greedy - un programma ricco di eventi:
- Scheda
- strumento per fare esperimenti
- Video - controesempi (quali criteri non sono adatti, e perché)
- Video - dimostrazione (dimostrazione di correttezza nel caso del criterio adatto
- Video - considerazioni sugli algoritmi greedy
- Spiegazione scritta
Decima settimana (12, 13 e 15 dicembre 2022)
Grafi per modellare situazioni diverse:Undicesima settimana (20 dicembre 2022)
Programmazione dinamica:- Lucidi
- Segnalo anche questa dispensa sulla programmazione dinamica scritta da Sebastiano Vigna per le IOI, che ho usato ampiamente come fonte per le mie slide.
- Scheda di esercizi
- Jet points: un altro esercizio di programmazione dinamica tratto da un vecchio progetto d'esame
Dodicesima settimana (9-12 gennaio 2023 2022)
- Esercizi di ripasso: valutazione di svolgimento di esercizi fatti da altri