Studiare
In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.
Piano Didattico
Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:
Laurea magistrale in Ingegneria e scienze informatiche - Immatricolazione dal 2025/2026Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.
1° Anno
Insegnamenti | Crediti | TAF | SSD |
---|
2° Anno Attivato nell'A.A. 2011/2012
Insegnamenti | Crediti | TAF | SSD |
---|
Tre insegnamenti a scelta tra i seguenti
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Tre insegnamenti a scelta tra i seguenti
Insegnamenti | Crediti | TAF | SSD |
---|
Legenda | Tipo Attività Formativa (TAF)
TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.
Fondamenti (2010/2011)
L'insegnamento è organizzato come segue:
Obiettivi formativi
Modulo: LOGICA
-------
Il corso si propone di introdurre la logica matematica e di chiarire come essa sia ausiliaria alle altre materie. Temi centrali sono la distinzione tra sintassi e semantica, la formalizzazione di proprietà nel linguaggio logico e il concetto di dimostrazione corretta, basata su regole generali prefissate. Verranno presentate tecniche per produrre prove e contro-esempi.
Modulo: LINGUAGGI
-------
L'obiettivo del corso è quello di presentare le basi teoriche dei linguaggi di programmazione. A tale scopo verranno introdotti vari linguaggi sequenziali paradigmatici anche di ordine superiore. Tutto il corso sarà incentrato sui concetti di semantica operazionale e di sistema di tipo. Verranno introdotte alcune tecniche formali per la verifica del comportamento dei programmi.
Programma
Modulo: LOGICA
-------
Livelli di riferimento. Linguaggio e meta-linguaggio.
Logica proposizionale e predicativa (classica e intuizionista).
Introduzione del calcolo dei sequenti con equazioni definitorie.
Sistemi LJ e LK. Teorema di eliminazione dei tagli. Ricerca delle prove.
Interpretazione classica delle formule, sia proposizionale che predicativa.
Teoremi di Correttezza, Completezza e Compattezza per il calcolo LK.
Problema della decisione per il calcolo predicativo.
Teoremi di incompletezza.
Modulo: LINGUAGGI
-------
Induction:
(i) Mathematical induction over the natural numbers;
(ii) Structural induction;
(iii) Rule induction.
Operational semantics:
Big step and small step semantics for simple languages including
• Exp, Bool, languages for arithmetic and Boolean expressions
• the imperative language of while commands While
• the functional languages Fun and Lambda and simple variations on them; call-by-name and call-by-value semantics.
Typing:
(i) Typing assignments for the languages Fun and Lambda
(ii) Progress and preservation.
(iii) For Lambda you should be familiar with the computational consequences of using types; in particular the need for explicit fixpoint operators.
Bibliografia
Autore | Titolo | Casa editrice | Anno | ISBN | Note |
---|---|---|---|---|---|
Andrea Asperti, Agata Ciabattoni | Logica a Informatica | McGraw-Hill | 2007 | ||
Carl A. Gunter | Semantics of Programming Languages | MIT Press | 1992 | 0262570955 | |
G. Winskel | The formal Semantics of Programming Languages | MIT Press | 1993 |
Modalità d'esame
Modulo: LOGICA
-------
Prova scritta.
Modulo: LINGUAGGI
-------
L'esame consiste in una prova scritta e una eventuale prova orale, a discrezione del docente.