Docenti
Capacità relative alle discipline
1.1 Conoscenza e capacità di comprensione: lo studente acquisisce conoscenze logico-formali fondanti la disciplina “informatica”. In particolare, le nozioni di linguaggio formale e la classificazione degli stessi secondo Chomsky, la nozione di funzione calcolabile e le sue principali caratterizzazioni e limiti, la nozione di complessità di un problema e le principali tecniche per studiarla.
1.2 Conoscenza e capacità di comprensione applicate: lo studente sarà in grado di comprendere la complessità di un linguaggio formale e dunque quale sia lo strumento software più adatto per generarlo o riconoscerlo, di comprendere se un problema sia o meno risolubile con un calcolatore e, nel primo caso, di comprendere se sia possibile risolverlo efficientemente.
Capacità trasversali/soft skills
2.1 Autonomia di giudizio: lo studente acquisisce una capacità di valutazione critica sulle specifiche di un problema che permettono di comprenderne il suo grado di calcolabilità e, nel caso, sia calcolabile, il suo grado di complessità.
2.2 Abilità comunicative: lo studente impara ad utilizzare la terminologia precisa nell’area dei linguaggi formali (automi, grammatiche), della calcolabilità (problema decidibile, semidecidibile etc) e della complessità (problema polinomiale, classe NP, etc).
2.3 Capacità di apprendimento: lo studente impara a familiarizzare con il metodo scientifico applicato in modo rigoroso alla disciplina informatica. Gran parte dei testi utilizzati sono in lingua inglese e pertanto lo studente migliora la sua capacità di comprendere informazioni ricevute in tale lingua.
Linguaggi formali.
Linguaggi regolari. Automi a stati finiti deterministici e non-deterministici,
e loro equivalenza.
Espressioni regolari. Pumping Lemma per i linguaggi regolari e sue applicazioni.
Proprietà di chiusura e di decidibilità dei linguaggi regolari.
Linguaggi liberi dal contesto. Grammatiche libere dal contesto e alberi di derivazione.
Grammatiche ambigue. Le forme normali di Chomsky e di Greibach.
Il pumping lemma per i linguaggi liberi e le sue applicazioni.
Proprietà di chiusura e di decidibilità dei linguaggi liberi.
Grammatiche lineari destre e sinistre, grammatiche di tipo 0 e 1 e
gerarchia di Chomsky.
Calcolabilità.
Il concetto di algoritmo. Modelli di calcolo. La macchina di Turing.
Funzioni Turing-calcolabili. Enumerazione. Halting Problem e sua indecidibilita’.
Il teorema SMN. I formalismi delle funzioni primitive ricorsive e
ricorsive parziali. La funzione di Ackermann.
Equivalenza tra le funzioni ricorsive parziali e le funzioni Turing-calcolabili.
Teoremi di Rice, Rice-Shapiro e i Teoremi di ricorsione.
Applicazioni alla programmazione. Riducibilità funzionale.
Studio della relazione. Insiemi ricorsivi e completi. Insiemi creativi e produttivi.
Teorema di Myhill. Insiemi semplici: esistenza di un insieme semplice.
Complessità.
Problemi e linguaggi. Problemi decisionali e funzionali.
Classi di complessità in tempo deterministiche e non deterministiche;
classi in spazio: principali risultati. Riduzioni, completezza, ed esempi.
Teoremi di Cook. NP-completezza di alcuni problemi fondamentali mediante riduzione.
Fondamenti dell’Informatica: Linguaggi Formali, Calcolabilità e Complessità.
BOLLATI BORINGHIERI, 320 pagine, MARZO 2020.
ISBN 9788833933795
Università degli Studi di Udine
Dipartimento di Scienze Matematiche, Informatiche e Fisiche (DMIF)
via delle Scienze 206, 33100 Udine, Italy
Tel: +39 0432 558400
Fax: +39 0432 558499
PEC: dmif@postacert.uniud.it
p.iva 01071600306 | c.f. 80014550307
30 km from Slovenia border
80 km from Austria border
120 km from Croatia border
160 km South West of Klagenfurt (Austria)
160 km West of Lubiana (Slovenia)
120 km North East of Venezia (Italy)