Automata, Languages and Computing

Codice: 20810256

Scheda insegnamento

Anno Accademico di erogazione
2026/2027
Periodo di erogazione
Primo semestre
CFU
9 CFU
Lingua
Italiano
SSD
IINF-05/A

Scopri il programma didattico

Programma, testi adottati e modalità d’esame sono quelli pubblicati dai docenti per l’anno accademico 2026/2027. L’insegnamento è diviso in canali: ogni canale ha il suo programma.

Curriculum
Sistemi Informatici Complessi
Anno di corso
1
Periodo
Primo semestre
Ore
81
CUIN
260005014

Programma

Il programma dell'insegnamento di Automata, Languages, and Computing è il seguente:
•    Proprietà elementari dei linguaggi: operazioni su linguaggi, operatore di Kleene, espressioni regolari, cardinalità dei linguaggi
•    Grammatiche formali: grammatiche di Chomsky, produzioni, riconoscimento di linguaggi.
•    Linguaggi regolari: automi a stati finiti, relazioni tra automi e linguaggi regolari, pumping lemma, chiusura dei linguaggi regolari, espressioni regolari e linguaggi regolari, decidibilità e linguaggi regolari, teorema di Myhill-Nerode.
•    Linguaggi non contestuali: automi a pila non deterministici, relazioni tra automi e linguaggi CF, pumping lemma, chiusura e decidibilità, ambiguità.
•    Macchine di Turing (MT) e Turing calcolabilità: funzionamento delle MT, MT multinastro, MT non deterministiche, descrizione linearizzata delle MT, MT universale, il problema della fermata, calcolabilità secondo Turing, teorema di Rice, linguaggi di tipo 0 e MT.
•   Teoria della complessità: tipologie di problemi, problemi di decisione, complessità e problemi di decisione su linguaggi, classi di complessità, relazioni elementari tra classi di complessità, riducibilità, completezza, la classe NP, NP-completezza, esempi di problemi NP-completi. La classe PSPACE. Complessità dei problemi di Machine Learning.

Prerequisiti

Non ci sono pre-requisiti specifici.

Testi adottati

Slide fornite dal docente.

Libri consigliato:

G. Ausiello, F. d'Amore, G. Gambosi, Linguaggi Modelli Complessità, Franco Angeli (i primi dieci capitoli sono distribuiti dagli autori gratuitamente)

M. Sipser, Introduction to the Theory of Computation, Thompson

Modalità di erogazione

Lezioni ed esercitazioni in aula.

Modalità di frequenza

Lezione in aula.

Modalità di valutazione

L'esame è costituito da una prova scritta con 8 domande e della durata di due ore.

Gli studenti che vorranno, potranno avvalersi del seguente ulteriore meccanismo di valutazione:
- Durante le lezioni verranno proposti esercizi da fare su moodle (domande in itinere) in tempo reale.
- Ciò potrà avvenire durante tutte le lezioni.
- La valutazione delle domande sarà sì/no.
- Coloro che avranno superato almeno l'ottanta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 6 domande, con tre quarti del tempo e conseguendo il massimo punteggio (7,5/30) sulle due domande da non fare.
- Coloro che avranno superato almeno il quaranta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 7 domande, con sette ottavi del tempo e conseguendo il massimo punteggio (3,75/30) sulla domanda da non fare.
- Potranno svolgere le domande in itinere solo coloro che saranno presenti a lezione.
- Per rilevare i presenti, in ogni lezione ci sarà un elenco informatizzato nel quale ciascuno potrà segnalare la propria presenza.
- L’elenco dei presenti non sarà usato in nessun altro modo.
- Per svolgere le domande in itinere sarà necessario portare a lezione almeno uno smartphone o un laptop o un tablet.

Prove previste

  • Prova scritta
  • Prove intermedie

Curriculum
Ingegneria dei Dati
Anno di corso
1
Periodo
Primo semestre
Ore
81
CUIN
260005015

Programma

Il programma dell'insegnamento di Automata, Languages, and Computing è il seguente:
•    Proprietà elementari dei linguaggi: operazioni su linguaggi, operatore di Kleene, espressioni regolari, cardinalità dei linguaggi
•    Grammatiche formali: grammatiche di Chomsky, produzioni, riconoscimento di linguaggi.
•    Linguaggi regolari: automi a stati finiti, relazioni tra automi e linguaggi regolari, pumping lemma, chiusura dei linguaggi regolari, espressioni regolari e linguaggi regolari, decidibilità e linguaggi regolari, teorema di Myhill-Nerode.
•    Linguaggi non contestuali: automi a pila non deterministici, relazioni tra automi e linguaggi CF, pumping lemma, chiusura e decidibilità, ambiguità.
•    Macchine di Turing (MT) e Turing calcolabilità: funzionamento delle MT, MT multinastro, MT non deterministiche, descrizione linearizzata delle MT, MT universale, il problema della fermata, calcolabilità secondo Turing, teorema di Rice, linguaggi di tipo 0 e MT.
•   Teoria della complessità: tipologie di problemi, problemi di decisione, complessità e problemi di decisione su linguaggi, classi di complessità, relazioni elementari tra classi di complessità, riducibilità, completezza, la classe NP, NP-completezza, esempi di problemi NP-completi. La classe PSPACE. Complessità dei problemi di Machine Learning.

Prerequisiti

Non ci sono pre-requisiti specifici.

Testi adottati

Slide fornite dal docente.

Libri consigliato:

G. Ausiello, F. d'Amore, G. Gambosi, Linguaggi Modelli Complessità, Franco Angeli (i primi dieci capitoli sono distribuiti dagli autori gratuitamente)

M. Sipser, Introduction to the Theory of Computation, Thompson

Modalità di erogazione

Lezioni ed esercitazioni in aula.

Modalità di frequenza

Lezione in aula.

Modalità di valutazione

L'esame è costituito da una prova scritta con 8 domande e della durata di due ore.

Gli studenti che vorranno, potranno avvalersi del seguente ulteriore meccanismo di valutazione:
- Durante le lezioni verranno proposti esercizi da fare su moodle (domande in itinere) in tempo reale.
- Ciò potrà avvenire durante tutte le lezioni.
- La valutazione delle domande sarà sì/no.
- Coloro che avranno superato almeno l'ottanta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 6 domande, con tre quarti del tempo e conseguendo il massimo punteggio (7,5/30) sulle due domande da non fare.
- Coloro che avranno superato almeno il quaranta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 7 domande, con sette ottavi del tempo e conseguendo il massimo punteggio (3,75/30) sulla domanda da non fare.
- Potranno svolgere le domande in itinere solo coloro che saranno presenti a lezione.
- Per rilevare i presenti, in ogni lezione ci sarà un elenco informatizzato nel quale ciascuno potrà segnalare la propria presenza.
- L’elenco dei presenti non sarà usato in nessun altro modo.
- Per svolgere le domande in itinere sarà necessario portare a lezione almeno uno smartphone o un laptop o un tablet.

Prove previste

  • Prova scritta
  • Prove intermedie

Curriculum
Intelligenza artificiale e Machine Learning
Anno di corso
1
Periodo
Primo semestre
Ore
81
CUIN
260005017

Programma

Il programma dell'insegnamento di Automata, Languages, and Computing è il seguente:
•    Proprietà elementari dei linguaggi: operazioni su linguaggi, operatore di Kleene, espressioni regolari, cardinalità dei linguaggi
•    Grammatiche formali: grammatiche di Chomsky, produzioni, riconoscimento di linguaggi.
•    Linguaggi regolari: automi a stati finiti, relazioni tra automi e linguaggi regolari, pumping lemma, chiusura dei linguaggi regolari, espressioni regolari e linguaggi regolari, decidibilità e linguaggi regolari, teorema di Myhill-Nerode.
•    Linguaggi non contestuali: automi a pila non deterministici, relazioni tra automi e linguaggi CF, pumping lemma, chiusura e decidibilità, ambiguità.
•    Macchine di Turing (MT) e Turing calcolabilità: funzionamento delle MT, MT multinastro, MT non deterministiche, descrizione linearizzata delle MT, MT universale, il problema della fermata, calcolabilità secondo Turing, teorema di Rice, linguaggi di tipo 0 e MT.
•   Teoria della complessità: tipologie di problemi, problemi di decisione, complessità e problemi di decisione su linguaggi, classi di complessità, relazioni elementari tra classi di complessità, riducibilità, completezza, la classe NP, NP-completezza, esempi di problemi NP-completi. La classe PSPACE. Complessità dei problemi di Machine Learning.

Prerequisiti

Non ci sono pre-requisiti specifici.

Testi adottati

Slide fornite dal docente.

Libri consigliato:

G. Ausiello, F. d'Amore, G. Gambosi, Linguaggi Modelli Complessità, Franco Angeli (i primi dieci capitoli sono distribuiti dagli autori gratuitamente)

M. Sipser, Introduction to the Theory of Computation, Thompson

Modalità di erogazione

Lezioni ed esercitazioni in aula.

Modalità di frequenza

Lezione in aula.

Modalità di valutazione

L'esame è costituito da una prova scritta con 8 domande e della durata di due ore.

Gli studenti che vorranno, potranno avvalersi del seguente ulteriore meccanismo di valutazione:
- Durante le lezioni verranno proposti esercizi da fare su moodle (domande in itinere) in tempo reale.
- Ciò potrà avvenire durante tutte le lezioni.
- La valutazione delle domande sarà sì/no.
- Coloro che avranno superato almeno l'ottanta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 6 domande, con tre quarti del tempo e conseguendo il massimo punteggio (7,5/30) sulle due domande da non fare.
- Coloro che avranno superato almeno il quaranta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 7 domande, con sette ottavi del tempo e conseguendo il massimo punteggio (3,75/30) sulla domanda da non fare.
- Potranno svolgere le domande in itinere solo coloro che saranno presenti a lezione.
- Per rilevare i presenti, in ogni lezione ci sarà un elenco informatizzato nel quale ciascuno potrà segnalare la propria presenza.
- L’elenco dei presenti non sarà usato in nessun altro modo.
- Per svolgere le domande in itinere sarà necessario portare a lezione almeno uno smartphone o un laptop o un tablet.

Prove previste

  • Prova scritta
  • Prove intermedie

Curriculum
Algoritmi, Big Data e Machine Learning
Anno di corso
1
Periodo
Primo semestre
Ore
81
CUIN
260005020

Programma

Il programma dell'insegnamento di Automata, Languages, and Computing è il seguente:
•    Proprietà elementari dei linguaggi: operazioni su linguaggi, operatore di Kleene, espressioni regolari, cardinalità dei linguaggi
•    Grammatiche formali: grammatiche di Chomsky, produzioni, riconoscimento di linguaggi.
•    Linguaggi regolari: automi a stati finiti, relazioni tra automi e linguaggi regolari, pumping lemma, chiusura dei linguaggi regolari, espressioni regolari e linguaggi regolari, decidibilità e linguaggi regolari, teorema di Myhill-Nerode.
•    Linguaggi non contestuali: automi a pila non deterministici, relazioni tra automi e linguaggi CF, pumping lemma, chiusura e decidibilità, ambiguità.
•    Macchine di Turing (MT) e Turing calcolabilità: funzionamento delle MT, MT multinastro, MT non deterministiche, descrizione linearizzata delle MT, MT universale, il problema della fermata, calcolabilità secondo Turing, teorema di Rice, linguaggi di tipo 0 e MT.
•   Teoria della complessità: tipologie di problemi, problemi di decisione, complessità e problemi di decisione su linguaggi, classi di complessità, relazioni elementari tra classi di complessità, riducibilità, completezza, la classe NP, NP-completezza, esempi di problemi NP-completi. La classe PSPACE. Complessità dei problemi di Machine Learning.

Prerequisiti

Non ci sono pre-requisiti specifici.

Testi adottati

Slide fornite dal docente.

Libri consigliato:

G. Ausiello, F. d'Amore, G. Gambosi, Linguaggi Modelli Complessità, Franco Angeli (i primi dieci capitoli sono distribuiti dagli autori gratuitamente)

M. Sipser, Introduction to the Theory of Computation, Thompson

Modalità di erogazione

Lezioni ed esercitazioni in aula.

Modalità di frequenza

Lezione in aula.

Modalità di valutazione

L'esame è costituito da una prova scritta con 8 domande e della durata di due ore.

Gli studenti che vorranno, potranno avvalersi del seguente ulteriore meccanismo di valutazione:
- Durante le lezioni verranno proposti esercizi da fare su moodle (domande in itinere) in tempo reale.
- Ciò potrà avvenire durante tutte le lezioni.
- La valutazione delle domande sarà sì/no.
- Coloro che avranno superato almeno l'ottanta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 6 domande, con tre quarti del tempo e conseguendo il massimo punteggio (7,5/30) sulle due domande da non fare.
- Coloro che avranno superato almeno il quaranta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 7 domande, con sette ottavi del tempo e conseguendo il massimo punteggio (3,75/30) sulla domanda da non fare.
- Potranno svolgere le domande in itinere solo coloro che saranno presenti a lezione.
- Per rilevare i presenti, in ogni lezione ci sarà un elenco informatizzato nel quale ciascuno potrà segnalare la propria presenza.
- L’elenco dei presenti non sarà usato in nessun altro modo.
- Per svolgere le domande in itinere sarà necessario portare a lezione almeno uno smartphone o un laptop o un tablet.

Prove previste

  • Prova scritta
  • Prove intermedie

Curriculum
Cybersecurity
Anno di corso
1
Periodo
Primo semestre
Ore
81
CUIN
260005024

Programma

Il programma dell'insegnamento di Automata, Languages, and Computing è il seguente:
•    Proprietà elementari dei linguaggi: operazioni su linguaggi, operatore di Kleene, espressioni regolari, cardinalità dei linguaggi
•    Grammatiche formali: grammatiche di Chomsky, produzioni, riconoscimento di linguaggi.
•    Linguaggi regolari: automi a stati finiti, relazioni tra automi e linguaggi regolari, pumping lemma, chiusura dei linguaggi regolari, espressioni regolari e linguaggi regolari, decidibilità e linguaggi regolari, teorema di Myhill-Nerode.
•    Linguaggi non contestuali: automi a pila non deterministici, relazioni tra automi e linguaggi CF, pumping lemma, chiusura e decidibilità, ambiguità.
•    Macchine di Turing (MT) e Turing calcolabilità: funzionamento delle MT, MT multinastro, MT non deterministiche, descrizione linearizzata delle MT, MT universale, il problema della fermata, calcolabilità secondo Turing, teorema di Rice, linguaggi di tipo 0 e MT.
•   Teoria della complessità: tipologie di problemi, problemi di decisione, complessità e problemi di decisione su linguaggi, classi di complessità, relazioni elementari tra classi di complessità, riducibilità, completezza, la classe NP, NP-completezza, esempi di problemi NP-completi. La classe PSPACE. Complessità dei problemi di Machine Learning.

Prerequisiti

Non ci sono pre-requisiti specifici.

Testi adottati

Slide fornite dal docente.

Libri consigliato:

G. Ausiello, F. d'Amore, G. Gambosi, Linguaggi Modelli Complessità, Franco Angeli (i primi dieci capitoli sono distribuiti dagli autori gratuitamente)

M. Sipser, Introduction to the Theory of Computation, Thompson

Modalità di erogazione

Lezioni ed esercitazioni in aula.

Modalità di frequenza

Lezione in aula.

Modalità di valutazione

L'esame è costituito da una prova scritta con 8 domande e della durata di due ore.

Gli studenti che vorranno, potranno avvalersi del seguente ulteriore meccanismo di valutazione:
- Durante le lezioni verranno proposti esercizi da fare su moodle (domande in itinere) in tempo reale.
- Ciò potrà avvenire durante tutte le lezioni.
- La valutazione delle domande sarà sì/no.
- Coloro che avranno superato almeno l'ottanta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 6 domande, con tre quarti del tempo e conseguendo il massimo punteggio (7,5/30) sulle due domande da non fare.
- Coloro che avranno superato almeno il quaranta per cento delle domande in itinere potranno fare, solo al primo appello, un compito di 7 domande, con sette ottavi del tempo e conseguendo il massimo punteggio (3,75/30) sulla domanda da non fare.
- Potranno svolgere le domande in itinere solo coloro che saranno presenti a lezione.
- Per rilevare i presenti, in ogni lezione ci sarà un elenco informatizzato nel quale ciascuno potrà segnalare la propria presenza.
- L’elenco dei presenti non sarà usato in nessun altro modo.
- Per svolgere le domande in itinere sarà necessario portare a lezione almeno uno smartphone o un laptop o un tablet.

Prove previste

  • Prova scritta
  • Prove intermedie

Esplora gli obiettivi dell’insegnamento

Ambito disciplinare: Ingegneria informatica

Presentare la teoria dei linguaggi e, parallelamente, la teoria degli automi. Introdurre i paradigmi della computabilità e della complessità. Al termine del corso gli studenti dovrebbero conoscere nuove metodologie formali, dovrebbero riuscire a rivisitare in modo critico, dal punto di vista del potere espressivo, metodologie già introdotte in modo pragmatico e dovrebbero essere in grado di classificare i problemi dal punto di vista delle risorse richieste per la loro risoluzione.

Risultati di apprendimento attesi — Giuseppe Di Battista

Lezioni in aula.

Risultati di apprendimento attesi — Giuseppe Di Battista

Lezioni in aula.

Risultati di apprendimento attesi — Giuseppe Di Battista

Lezioni in aula.

Risultati di apprendimento attesi — Giuseppe Di Battista

Lezioni in aula.

Risultati di apprendimento attesi — Giuseppe Di Battista

Lezioni in aula.

Obiettivi di sostenibilità

  • 1 Sconfiggere la povertà
  • 2 Sconfiggere la fame
  • 3 Salute e benessere
  • 4 Istruzione di qualità
  • 8 Lavoro dignitoso e crescita economica
  • 16 Pace, giustizia e istituzioni solide

Esempi di domande d’esame

Giuseppe Di Battista

Tre esempi di domande d'esame:

(1) Mostra in dettaglio, usando un diagramma, una Macchina di Turing deterministica mononastro che decida il linguaggio delle stringhe sull’alfabeto {a,b,c} che hanno un numero uguale di a, di b e di c.

(2) Dato un grafo non orientato G=(V,E) un cammino semplice in G è un cammino tra due vertici di V che non ha vertici ripetuti. La lunghezza di un cammino semplice è data dal numero di archi da esso attraversati. Il problema CAMMINOLUNGO è definito nel modo seguente. Istanza: Grafo non orientato G = (V, E); intero positivo K≤|V|. Predicato: Esiste un cammino semplice in G di lunghezza maggiore o uguale a K? Mostra un’istanza positiva di CAMMINOLUNGO con |V|≥5 e K≥3. Mostra un’istanza negativa di CAMMINOLUNGO con |V|≥5 e K≥3. Se G è un albero allora CAMMINOLUNGO appartiene a P? Motiva la risposta.

(3) Dimostra che l’insieme di numeri reali non è numerabile.

Giuseppe Di Battista

Tre esempi di domande d'esame:

(1) Mostra in dettaglio, usando un diagramma, una Macchina di Turing deterministica mononastro che decida il linguaggio delle stringhe sull’alfabeto {a,b,c} che hanno un numero uguale di a, di b e di c.

(2) Dato un grafo non orientato G=(V,E) un cammino semplice in G è un cammino tra due vertici di V che non ha vertici ripetuti. La lunghezza di un cammino semplice è data dal numero di archi da esso attraversati. Il problema CAMMINOLUNGO è definito nel modo seguente. Istanza: Grafo non orientato G = (V, E); intero positivo K≤|V|. Predicato: Esiste un cammino semplice in G di lunghezza maggiore o uguale a K? Mostra un’istanza positiva di CAMMINOLUNGO con |V|≥5 e K≥3. Mostra un’istanza negativa di CAMMINOLUNGO con |V|≥5 e K≥3. Se G è un albero allora CAMMINOLUNGO appartiene a P? Motiva la risposta.

(3) Dimostra che l’insieme di numeri reali non è numerabile.

Giuseppe Di Battista

Tre esempi di domande d'esame:

(1) Mostra in dettaglio, usando un diagramma, una Macchina di Turing deterministica mononastro che decida il linguaggio delle stringhe sull’alfabeto {a,b,c} che hanno un numero uguale di a, di b e di c.

(2) Dato un grafo non orientato G=(V,E) un cammino semplice in G è un cammino tra due vertici di V che non ha vertici ripetuti. La lunghezza di un cammino semplice è data dal numero di archi da esso attraversati. Il problema CAMMINOLUNGO è definito nel modo seguente. Istanza: Grafo non orientato G = (V, E); intero positivo K≤|V|. Predicato: Esiste un cammino semplice in G di lunghezza maggiore o uguale a K? Mostra un’istanza positiva di CAMMINOLUNGO con |V|≥5 e K≥3. Mostra un’istanza negativa di CAMMINOLUNGO con |V|≥5 e K≥3. Se G è un albero allora CAMMINOLUNGO appartiene a P? Motiva la risposta.

(3) Dimostra che l’insieme di numeri reali non è numerabile.

Giuseppe Di Battista

Tre esempi di domande d'esame:

(1) Mostra in dettaglio, usando un diagramma, una Macchina di Turing deterministica mononastro che decida il linguaggio delle stringhe sull’alfabeto {a,b,c} che hanno un numero uguale di a, di b e di c.

(2) Dato un grafo non orientato G=(V,E) un cammino semplice in G è un cammino tra due vertici di V che non ha vertici ripetuti. La lunghezza di un cammino semplice è data dal numero di archi da esso attraversati. Il problema CAMMINOLUNGO è definito nel modo seguente. Istanza: Grafo non orientato G = (V, E); intero positivo K≤|V|. Predicato: Esiste un cammino semplice in G di lunghezza maggiore o uguale a K? Mostra un’istanza positiva di CAMMINOLUNGO con |V|≥5 e K≥3. Mostra un’istanza negativa di CAMMINOLUNGO con |V|≥5 e K≥3. Se G è un albero allora CAMMINOLUNGO appartiene a P? Motiva la risposta.

(3) Dimostra che l’insieme di numeri reali non è numerabile.

Giuseppe Di Battista

Tre esempi di domande d'esame:

(1) Mostra in dettaglio, usando un diagramma, una Macchina di Turing deterministica mononastro che decida il linguaggio delle stringhe sull’alfabeto {a,b,c} che hanno un numero uguale di a, di b e di c.

(2) Dato un grafo non orientato G=(V,E) un cammino semplice in G è un cammino tra due vertici di V che non ha vertici ripetuti. La lunghezza di un cammino semplice è data dal numero di archi da esso attraversati. Il problema CAMMINOLUNGO è definito nel modo seguente. Istanza: Grafo non orientato G = (V, E); intero positivo K≤|V|. Predicato: Esiste un cammino semplice in G di lunghezza maggiore o uguale a K? Mostra un’istanza positiva di CAMMINOLUNGO con |V|≥5 e K≥3. Mostra un’istanza negativa di CAMMINOLUNGO con |V|≥5 e K≥3. Se G è un albero allora CAMMINOLUNGO appartiene a P? Motiva la risposta.

(3) Dimostra che l’insieme di numeri reali non è numerabile.

Il corso in cui è erogato questo insegnamento

API