Welcome to my webpage

Programmazione e Laboratorio (in Italian)

2024-2025, I e II semestre, Laurea Triennale in Informatica, Università di Udine

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]
    Materiale:
  • Lezione 19 (mercoledì 4/12/24, 8:30-10:30): Dimostrazioni formali di correttezza di programmi ricorsivi [Parziale numero ore: 6]
    Materiale:
  • Lezione 20 (giovedì 5/12/24, 8:30-10:30): Esempi di dimostrazioni formali di correttezza di programmi ricorsivi [Parziale numero ore: 8]
    Materiale:
  • 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]
    Materiale:
  • 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]
    Materiale:
  • 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]
    Materiale:
    [problema6.pdf] [xlcs.rkt] [input.txt] [output.txt] [lcs_v1.rkt] [lcs_v2.rkt] [diffs.txt]
    diffs.txt contiene l'output restituito dal programma diff sui file lcs_v1.rkt e lcs_v2.rkt
  • 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]
    Materiale:
  • 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]
    Materiale:
  • Lezione 8 (lunedì 16/12/24 e martedì 17/12/24, 10:30-12:30): Esercitazione su temi d'esame [Parziale numero ore: 32]
    Materiale:
  • 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]
    Materiale:
  • 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]
    Materiale:
  • Lezione 17 (lunedì 9/6/25, 10:30-12:30): Progetto "Codifica di Huffman" [Parziale numero ore: 48]