MODELS OF COMPUTATION Canale unico

Docente coordinatore e verbalizzante: ADOLFO PIPERNO

Docenti

Obiettivi formativi

Obiettivi generali
L'insegnamento è indirizzato all'acquisizione delle conoscenze matematiche relative ad aspetti fondamentali dei linguaggi di programmazione funzionale e imperativa con particolare attenzione ai meccanismi di esecuzione dei programmi.

Obiettivi specifici

Conoscenza e comprensione:
Alla fine del corso lo studente avrà piena comprensione degli strumenti matematici proposti.

Capacità di applicare conoscenza e comprensione:
Lo studente sarà in grado di approfondire lo studio consultando autonomamente manuali o pubblicazioni scientifiche.

Capacità critiche e di giudizio:
Le conoscenze acquisite permetteranno allo studente di individuare e confrontare in altri ambiti gli argomenti proposti nell'uso di linguaggi di programmazione, in particolare nell'ambito lavorativo.

Capacità di comunicare quanto si è appreso:
Lo studente viene stimolato ad esporre e comunicare le proprie esperienze ai suoi colleghi.

Capacità di proseguire lo studio in modo autonomo nel corso della vita:
Il corso tratta aspetti fondamentali della programmazione, assicurando allo studente la possibilità di individuarli autonomamente nell'uso di ogni particolare linguaggio.

Risultati di apprendimento attesi

Obiettivi generali
L'insegnamento è indirizzato all'acquisizione delle conoscenze matematiche relative ad aspetti fondamentali dei linguaggi di programmazione funzionale e imperativa con particolare attenzione ai meccanismi di esecuzione dei programmi.

Obiettivi specifici

Conoscenza e comprensione:
Alla fine del corso lo studente avrà piena comprensione degli strumenti matematici proposti.

Capacità di applicare conoscenza e comprensione:
Lo studente sarà in grado di approfondire lo studio consultando autonomamente manuali o pubblicazioni scientifiche.

Capacità critiche e di giudizio:
Le conoscenze acquisite permetteranno allo studente di individuare e confrontare in altri ambiti gli argomenti proposti nell'uso di linguaggi di programmazione, in particolare nell'ambito lavorativo.

Capacità di comunicare quanto si è appreso:
Lo studente viene stimolato ad esporre e comunicare le proprie esperienze ai suoi colleghi.

Capacità di proseguire lo studio in modo autonomo nel corso della vita:
Il corso tratta aspetti fondamentali della programmazione, assicurando allo studente la possibilità di individuarli autonomamente nell'uso di ogni particolare linguaggio.

Prerequisiti

Nessuno


Programma dell’insegnamento

Introduzione al lambda-calcolo, sintassi e semantica operazionale. [10 ore]
Teorema di Church-Rosser. [10 ore]
Tesi di Church. [10 ore]
Strutture dati e loro rappresentazione nel lambda-calcolo. [10 ore]
Sistemi di tipi, normalizzazione forte e debole. [10 ore]
Teorema di Böhm. [10 ore]

Testi di riferimento

Note distribuite dal docente

Bibliografia

Nessuna

Modalità di svolgimento

Didattica frontale, articolata in lezioni per circa il 70% delle ore ed in esercitazioni per il restante 30%.

Frequenza

Non obbligatoria

Modalità di esame

La prova di esame sarà scritta (fondamentale per la valutazione finale) con domande a risposta chiusa o aperta.
Si può prevedere (a richiesta dello studente) una prova orale di discussione della prova scritta.

Si prevede una prova intermedia.

Esempi di domande

beta-riduzione di lambda-termini, loro astrazione in logica combinatoria, assegnamento di tipi

  • Anno accademico2024/2025
  • Corso di studio a cui afferisce l’insegnamentoComputer Science - Informatica
  • Codice insegnamento1047638
  • Anno e semestre1º anno - 1º semestre
  • TipologiaAttività formative affini ed integrative
  • AmbitoAttività formative affini o integrative
  • SSDINF/01
  • Presenza obbligatoriaNo
  • Linguaeng
  • CFU6 CFU
  • Durata complessiva60 ore
  • Distribuzione delle ore36 classroom hours, 24 training hours