Welcome to my webpage

Programmazione e Laboratorio (in Italian)

2025-2026, 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:
    • mercoledì dalle 8:30 alle 10:30 (studenti con numero di matricola pari)
    • venerdì dalle 10:30 alle 12:30 (studenti con numero di matricola dispari)
  • II semestre: le lezioni di laboratorio si svolgeranno in turno unico
    • mercoledì dalle 12:30 alle 14: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 2 (giovedì 2/10/25, 8:30-10:30): Introduzione (i 3 miracoli dell'informatica, significato vs. forma); installazione di DrRacket; espressioni in Scheme [Parziale numero ore: 2]
    • Lezione 3 (lunedì 6/10/25, 8:30-10:30): Introduzione all'astrazione procedurale; costrutti lambda e define [Parziale numero ore: 4]
    • Lezione 4 (giovedì 9/10/25, 8:30-10:30): Funzione per il calcolo del plurale di un sostantivo maschile; tipi di dati booleani e funzioni a valore booleano; costrutto if; funzione per il calcolo del plurale di un sostantivo (maschile o femminile) [Parziale numero ore: 6]
      Materiale:
      Per scaricare il file codice.rkt usare il tasto destro del mouse (o qualcosa di equivalente in sistemi Apple) e selezionare, nel menù risultante, la voce "save link as"
    • II semestre [top]
    • Lezione 45 (mercoledì 6/5/26, 8:30-10:30): Correttezza di programmi imperativi (invarianti e correttezza, algoritmo del contadino russo) [Parziale numero ore: 8]
    • Lezione 47 (mercoledì 13/5/26, 8:30-10:30): Correttezza di programmi imperativi (correttezza dell'algoritmo del contadino russo, terminazione) [Parziale numero ore: 10]
    • Lezione 48 (martedì 19/5/26, 8:30-10:30): Correttezza di programmi imperativi (terminazione dell'algoritmo del contadino russo, altri esercizi) [Parziale numero ore: 12]
    • Lezione 49 (mercoledì 20/5/26, 8:30-10:30): Conversione di programmi ricorsivi in programmi iterativi [Parziale numero ore: 14]
    • Lezione 50 (martedì 26/5/26, 8:30-10:30): Conversione di programmi ricorsivi in programmi iterativi (altri esercizi) [Parziale numero ore: 16]
    • Lezione 51 (mercoledì 27/5/26, 8:30-10:30): Esercitazione su temi d'esame [Parziale numero ore: 18]
    • Lezione 52 (mercoledì 3/6/26, 8:30-10:30): Esercitazione su temi d'esame [Parziale numero ore: 20]

    • Lezioni di laboratorio [top]

      I semestre [top]
    • Lezione 1 (mercoledì 29/10/25, 8:30-10:30, e venerdì 31/10/25, 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 (mercoledì 5/11/25, 8:30-10:30, e venerdì 7/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 (mercoledì 12/11/25, 8:30-10:30, e venerdì 14/11/25, 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 (mercoledì 19/11/25, 8:30-10:30, e venerdì 21/11/25, 10:30-12:30): Problema 6 (manipolazione di liste di numeri) [Parziale numero ore: 16]
      Materiale:
    • Lezione 5 (mercoledì 26/11/25, 8:30-10:30, e venerdì 28/11/25, 10:30-12:30): Problema 7 (implementazione del comando diff) [Parziale numero ore: 20]
      Materiale:
      [problema7.pdf] [lcs_plus.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 6 (mercoledì 3/12/25, 8:30-10:30, e venerdì 5/12/25, 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 (mercoledì 10/12/25, 8:30-10:30, e venerdì 12/12/25, 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 (mercoledì 17/12/25, 8:30-10:30, e venerdì 19/12/25 9/1/26 (note the different date), 10:30-12:30): Esercitazione su temi d'esame [Parziale numero ore: 32]
      Materiale:
    • II semestre [top]
    • Lezione 9 (mercoledì 25/3/26, 12:30-14:30): Esercitazione sulla codifica in Java [Parziale numero ore: --]
      Materiale:
    • Lezione 10 (mercoledì 1/4/26, 12:30-14:30): Problema 10 (implementazione e testing della classe StringSList) [Parziale numero ore: 34]
    • Lezione 11 (mercoledì 8/4/26, 12:30-14:30): Problema 11 (rompicapo delle N regine) [Parziale numero ore: 36]
    • Lezione 12 (mercoledì 15/4/26, 12:30-14:30): Problema 12 (rompicapo delle N regine con l'utilizzo di liste di liste e interfaccia grafica) [Parziale numero ore: 38]
    • Lezione 13 (mercoledì 22/4/26, 12:30-14:30): Progetto "Longest Increasing Subsequence" – I parte [Parziale numero ore: 40]
      Materiale:
    • Lezione 14 (mercoledì 29/4/26, 12:30-14:30): Progetto "Longest Increasing Subsequence" – II parte [Parziale numero ore: 42]
    • Lezione 15 (mercoledì 6/5/26, 12:30-14:30): Problema 13 (rompicapo del 15 generalizzato) [Parziale numero ore: 44]
    • Lezione 16 (mercoledì 13/5/26, 12:30-14:30): Progetto "Codifica di Huffman" [Parziale numero ore: 46]
    • Lezione 17 (mercoledì 20/5/26, 12:30-14:30): Problema 14 (distributore automatico di bevande) [Parziale numero ore: 48]
      Materiale:
    • Lezione 18 (mercoledì 27/5/26, 12:30-14:30): Esercitazione su temi d'esame [Parziale numero ore: 50]
      Materiale:
    • Lezione 19 (mercoledì 3/6/26, 12:30-14:30): Esercitazione su temi d'esame [Parziale numero ore: 52]