Navigazione di Sezione:
Automi E Linguaggi 2025/2026
Generali:
- Dipartimento: Ingegneria
- Settore Ministeriale: ING-INF/05
- Codice di verbalizzazione: 8039110
- Metodi di insegnamento: Frontale
- Metodi di valutazione: Scritto E Orale
- Prerequisiti: Conoscenza sufficientemente completa di almeno un linguaggio di programmazione (meglio se più di uno) e delle nozioni di base su algoritmi e programmazione. Conoscenze di architettura dei calcolatori e di sistemi operativi. Familiarità con i concetti di teorema e dimostrazione formale (analisi matematica, geometria, algebra).
- Obiettivi: OBIETTIVI FORMATIVI L'insegnamento intende fornire una introduzione a concetti fondamentali e problematiche riguardanti due degli elementi ("automi" e "linguaggi") che costituiscono il nucleo fondativo e distintivo dell'informatica all'interno delle discipline di area STEM (scienze, tecnologie, ingegneria, matematica), adottando a questo scopo un approccio che combina aspetti concettuali e pragmatici. Da un punto di vista concettuale il corso presenta elementi della teoria dei linguaggi formali e degli automi, e della teoria della calcolabilita'. Da un punto di vista pragmatico, il corso presenta aspetti fondamentali dei linguaggi di programmazione reali, evidenziandone le caratteristiche comuni, le varianti linguistiche e semantiche e la loro motivazione, e aspetti relativi alla loro implementazione e relativi costi. CONOSCENZA E CAPACITA' DI COMPRENSIONE Al termine del corso lo studente avrà acquisito concetti fondamentali relativi a linguaggi formali e automi (in particolare, a stati finiti) e alle relazioni tra essi. Avrà acquisito inoltre consapevolezza degli elementi fondamentali che caratterizzano un qualsiasi linguaggio di programmazione reale, delle loro diverse declinazioni nei linguaggi esistenti e dei relativi costi di implementazione. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE Al termine del corso lo studente sarà in grado di risolvere semplici problemi di informatica teorica mediante l'applicazione di algoritmi e la derivazione di dimostrazioni, e di affrontare problematiche relative alle caratteristiche fondamentali dei linguaggi di programmazione reali. In particolare, lo studente sarà in grado di: - dimostrare l'equivalenza o non equivalenza di automi a stati finiti, espressioni regolari, macchine di Turing; costruire automi, espressioni, grammatiche o macchine di Turing che riconoscono un linguaggio formale assegnato, e ragionare in modo formale sulle loro proprietà; - valutate e confrontare l'efficacia e l'efficienza dei diversi costrutti linguistici usati nei linguaggi di programmazione. AUTONOMIA DI GIUDIZIO Al termine del corso lo studente sarà in grado di: - applicare i metodi di base dell'informatica teorica, a partire dagli strumenti formali del ragionamento logico e della dimostrazione matematica, al fine di risolvere in autonomia problemi relativi alla classificazione fondamentale dei linguaggi formali e dei problemi computazionali; - valutare, confrontare e apprezzare criticamente le soluzioni linguistiche e implementative adottate nei linguaggi di programmazione già appresi o da apprendere, anche rispetto alla loro adeguatezza a specifici contesti applicativi. ABILITA' COMUNICATIVE Al termine del corso lo studente avrà acquisito: - padronanza della terminologia di base dell'informatica teorica e capacità di esposizione dei relativi concetti e risultati fondamentali, con particolare riferimento agli ambiti dei linguaggi formali, degli automi a stati finiti, delle espressioni regolari, delle macchine di Turing; - capacità di identificare e definire le soluzioni linguistiche adottate in uno specifico linguaggio di programmazione e i relativi costi di implementazione. CAPACITA' DI APPRENDIMENTO Al termine del corso lo studente avrà acquisito: - la capacità di intraprendere in autonomia ulteriori approfondimenti su argomenti attinenti l'informatica teorica, e di utilizzare le conoscenze e metodologie imparate per affrontare problemi nuovi; - la capacità di individuare e valutare criticamente gli aspetti fondamentali a cui prestare attenzione nell'apprendimento di un nuovo linguaggio di programmazione.
- Ricevimento: martedi' 15:00-16:00, venerdi' 15:00-16:00, Ingegneria dell'Informazione, corpo D, piano 1, stanza D1-13
Didattica:
- A.A.: 2025/2026
- Canale: UNICO
- Crediti: 6
Classe virtuale:
- Nome classe: GRASSI-8039110-AUTOMI_E_LINGUAGGI
- Link Microsoft Teams: Link
- Docente: GRASSI VINCENZO
English
Italiano