Per maggiori informazioni si rimanda alla pagina del corso di
Programmazione
e Laboratorio sul sito del prof. Claudio Mirolo
Orario lezioni di laboratorio di programmazione
-
I semestre: le lezioni di laboratorio si svolgeranno in due turni
- lunedì dalle 10:30 alle 12:30 (studenti di Internet
of Things, Big Data, Machine Learning)
- martedì dalle 10:30 alle 12:30 (studenti del corso di Informatica)
-
II semestre: lunedì dalle 10:30 alle 12:30
Testi
Testo di riferimento sulla programmazione funzionale:
M. Hailperin, B. Kaiser, K. Knight
"Concrete Abstractions"
Disponibile online (Ediz. originale: Brooks/Cole)
I testi degli esercizi ed il
materiale di accompagnamento (es.: teachpack) sono offerti dal
prof. Claudio Mirolo
Lezioni di teoria tenute da me (le altre sono offerte dal
prof. Claudio Mirolo)
[top]
I link ai video delle lezioni che ho
registrato sono disponibili qui
I semestre
[top]
- Lezione 15 (mercoledì 20/11/24, 8:30-10:30):
Funzioni di ordine superiore (con argomenti e/o valori funzionali);
esempio di funzione con argomento funzionale
(funzione crittazione); esempio di
funzione con valore funzionale
(funzione cifrario)
[Parziale numero ore: 2]
- Lezione 16 (giovedì 21/11/24, 8:30-10:30):
Esempio di funzione con argomento e valore funzionale (funzione per la
generazione di regole di decrittazione per regole basate su
rotazione); generalizzazione della funzione precedente per qualsiasi
permutazione di lettere maiuscole; esempio notevole di funzione con
argomenti procedurali (funzione map)
[Parziale numero ore: 4]
- Lezione 19 (mercoledì 4/12/24, 8:30-10:30):
Dimostrazioni formali di correttezza di programmi ricorsivi
[Parziale numero ore: 6]
- Lezione 20 (giovedì 5/12/24, 8:30-10:30):
Esempi di dimostrazioni formali di correttezza di programmi ricorsivi
[Parziale numero ore: 8]
- Lezione 21 (mercoledì 11/12/24, 8:30-10:30):
Altri esempi di dimostrazioni formali di correttezza di programmi
ricorsivi; procedura ufo
[Parziale numero ore: 10]
- Lezione 22 (giovedì 12/12/24, 8:30-10:30):
Dimostrazione di una proprietà generale della
procedura ufo; esercitazione su temi
d'esame
[Parziale numero ore: 12]
II semestre
[top]
-
Lezione 43 (mercoledì 7/5/25, 10:30-12:30): Correttezza di
programmi imperativi (invarianti e correttezza, correttezza
dell'algoritmo del contadino russo)
[Parziale numero ore: 14]
-
Lezione 45 (mercoledì 14/5/25, 10:30-12:30): Correttezza di
programmi imperativi (terminazione ed esercizi)
[Parziale numero ore: 16]
-
Lezione 47 (mercoledì 21/5/25, 10:30-12:30): Correttezza di
programmi imperativi (altri esercizi)
[Parziale numero ore: 18]
-
Lezione 51 (mercoledì 4/6/25, 10:30-12:30): Esercitazione su
temi d'esame
[Parziale numero ore: 20]
-
Lezione 53 (mercoledì 11/6/25, 10:30-12:30): Esercitazione su
temi d'esame
[Parziale numero ore: 22]
-
Lezione 54 (giovedì 12/6/25, 8:30-10:30): Esercitazione su
temi d'esame
[Parziale numero ore: 24]
Lezioni di laboratorio
[top]
I semestre
[top]
- Lezione 1 (lunedì 28/10/24 e
martedì 29/10/24,
10:30-12:30): Problemi 1 (coniugare frasi) e 2 (puzzle con piastrelle)
[Parziale numero ore: 4]
Per scaricare il teachpack usare il tasto destro del mouse (o
qualcosa di equivalente in sistemi Apple) e selezionare, nel
menù risultante, la voce "save link as"
- Lezione 2 (lunedì 4/11/24 e martedì
5/11/24, 10:30-12:30): Problema 3 (determinare il valore di
rappresentazioni numeriche in una data base)
[Parziale numero ore: 8]
- Lezione 3 (lunedì 11/11/24 e martedì
12/11/24, 10:30-12:30): Problemi 4 (percorsi di Manhattan
tridimensionali) e 5 (tassellazione di una regione ad L)
[Parziale numero ore: 12]
Per scaricare il teachpack usare il tasto destro del mouse (o
qualcosa di equivalente in sistemi Apple) e selezionare, nel
menù risultante, la voce "save link as"
- Lezione 4 (lunedì 18/11/24 e martedì 19/11/24, 10:30-12:30): Problema 6 (implementazione del comando diff)
[Parziale numero ore: 16]
- Lezione 5 (lunedì 25/11/24 e martedì 26/11/24, 10:30-12:30): Problema 7 (manipolazione di liste di numeri)
[Parziale numero ore: 20]
- Lezione 6 (lunedì 2/12/24 e martedì 3/12/24, 10:30-12:30): Problema 8 (torre di Hanoi)
[Parziale numero ore: 24]
Per scaricare il teachpack usare il tasto destro del mouse (o
qualcosa di equivalente in sistemi Apple) e selezionare, nel
menù risultante, la voce "save link as"
- Lezione 7 (lunedì 9/12/24 e martedì
10/12/24, 10:30-12:30): Problema 9 (funzioni di ordine superiore, ossia procedure con argomenti e/o valori procedurali: cifrario di Cesare e composizione di funzioni)
[Parziale numero ore: 28]
- Lezione 8 (lunedì 16/12/24 e martedì 17/12/24,
10:30-12:30): Esercitazione su temi d'esame
[Parziale numero ore: 32]
II semestre
[top]
- Lezione 9 (lunedì 31/3/25, 10:30-12:30): Problema 10 (implementazione e testing della classe StringSList)
[Parziale numero ore: 34]
- Lezione 10 (lunedì 7/4/25, 10:30-12:30): Problema 11
(rompicapo della conta dei cavalieri attorno alla tavola rotonda,
tratto dal racconto di Giuseppe Flavio)
[Parziale numero ore: 36]
- Lezione 11 (lunedì 14/4/25, 10:30-12:30): Problema 12
(rompicapo delle N regine)
[Parziale numero ore: 38]
- Lezione 12 (lunedì 28/4/25, 10:30-12:30): Problema 13
(rompicapo delle N regine con l'utilizzo di liste di liste e
interfaccia grafica)
[Parziale numero ore: 40]
- Lezione 13 (lunedì 5/5/25, 10:30-12:30): Progetto "Longest Increasing Subsequence" – I parte
[Parziale numero ore: 42]
- Lezione 14 (lunedì 12/5/25, 10:30-12:30): Progetto "Longest Increasing Subsequence" – II parte
[Parziale numero ore: -]
- Lezione 15 (lunedì 19/5/25, 10:30-12:30): Problema 14 (rompicapo del 15 generalizzato)
[Parziale numero ore: 44]
- Lezione 16 (lunedì 26/5/25, 10:30-12:30): Esercitazione su
temi d'esame
[Parziale numero ore: 46]
- Lezione 17 (lunedì 9/6/25, 10:30-12:30): Progetto "Codifica
di Huffman"
[Parziale numero ore: 48]
|