Insegnamenti

Seleziona l'Anno Accademico:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Docente
MASSIMO BARTOLETTI (Tit.)
Periodo
Primo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[60/61]  INFORMATICA [61/00 - Ord. 2016]  PERCORSO COMUNE 6 48

Obiettivi

1. Conoscenza e capacità di comprensione.
L'insegnamento espone lo studente alla teoria degli automi e dei linguaggi formali. In particolare, lo studente acquisirà alcune conoscenze di base sulla modellazione formale e l'analisi di sistemi software, e sulle limitazioni dei sistemi di calcolo. I vari argomenti vengono descritti fornendo una giustificazione teorica per quanto possibile rigorosa, permettendo allo studente di comprendere la dimostrazione di semplici proprietà di sistemi formali.

2. Capacità di applicare conoscenza e comprensione.
Lo studente acquisirà alcune capacità di base relative all'astrazione di problemi concreti usando modelli formali, ed in particolare la capacità di applicare semplici algoritmi per linguaggi formali, e quella di utilizzare alcuni strumenti software basati sulla teoria degli automi.

3. Autonomia di giudizio.
Il corso fornisce agli studenti le competenze di base per applicare le tecniche descritte durante il corso alla risoluzione di problemi applicativi connessi al proprio campo di studi.

4. Abilità comunicative.
Le lezioni prevedono frequenti momenti di interazione con gli studenti, che apprenderanno a comunicare in modo appropriato i concetti appresi.

5. Capacità di apprendimento.
Il corso fornisce agli studenti una preparazione sufficiente alla comprensione di testi universitari avanzati sulle tematiche del corso, rendendoli capaci di ampliare in futuro le proprie conoscenze in modo autonomo.

Prerequisiti

Sono utili elementi di base di matematica discreta, teoria degli insiemi, logica matematica e tecniche di dimostrazione, algoritmi e strutture dati.

Contenuti

- Notazione logica
- Insiemi, funzioni e biiezioni
- Definizioni ricorsive e regole di inferenza
- Linguaggi
- Procedure di dimostrazione per la logica proposizionale
- Programmazione funzionale in Ocaml
- Sistemi di transizioni etichettate
- Automi a stati finiti
- Eliminazione del non-determinismo
- Pumping lemma per linguaggi regolari
- Procedure di decisione per linguaggi regolari
- Macchine di Turing
- Funzioni non calcolabili
- Complessità computazionale

Metodi Didattici

Il corso consiste di 48 ore di lezione frontale, che includono anche esercitazioni in aula. Le esercitazioni consistono nell'applicazione delle tecniche studiate. Contemporaneamente al corso si svolge un'attività di tutorato, volta ad assistere gli studenti nello studio e nella preparazione della prova finale. Il docente presta inoltre assistenza agli studenti, nell'arco dell'intero anno accademico, sia durante l'orario di ricevimento che attraverso la piattaforma di learning.

La didattica verrà erogata contemporaneamente sia in presenza sia online, delineando dunque una didattica mista che possa essere fruita nelle aule universitarie ma al contempo anche a distanza. Ogni studente, all'inizio del semestre può optare, con scelta vincolante, per la didattica in presenza o a distanza. In funzione della disponibilità delle aule e del numero di studenti che opteranno per la modalità in presenza, potrà essere prevista comunque una turnazione per l'effettivo accesso in aula.

Verifica dell'apprendimento

L'esame è suddiviso in una parte scritta e una orale, che mirano a verificare sia le conoscenze che le capacità acquisite dallo studente.

In base alla situazione epidemiologica, la prova potrà essere svolta a distanza mediante ausili informatici.

Testi

Testo di riferimento: note del docente (in inglese)

Testi di consultazione:

Hopcroft, Motwani, Ullman. Automi, linguaggi e calcolabilità. Pearson, 2009.

Functional programming in Ocaml: https://www.cs.cornell.edu/courses/cs3110/2019sp/textbook/

Altre Informazioni

https://elearning.unica.it/course/view.php?id=157

Questionario e social

Condividi su:
Impostazioni cookie