IN490 - Linguaggi di Programmazione

Codice: 20410427

Scheda insegnamento

Anno Accademico di erogazione
2026/2027
Corso di studi
Scienze Computazionali
Periodo di erogazione
Primo semestre
CFU
9 CFU
Lingua
Italiano
SSD
INF/01

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.

Docente
Flavio Lombardi
Curriculum
Crittografia e sicurezza informatica
Anno di corso
1
Periodo
Primo semestre
Ore
72
CUIN
260008552

Programma

Il corso di Linguaggi di Programmazione ha come obiettivo quello di presentare i principali concetti della teoria dei linguaggi formali e la loro applicazione alla classificazione dei linguaggi di programmazione. Introdurre le principali tecniche per l'analisi sintattica dei linguaggi di programmazione. Imparare a riconoscere la struttura di un linguaggio di programmazione e le tecniche per implementarne la macchina astratta. Conoscere il paradigma orientato agli oggetti ed altri paradigmi non imperativi.

Prerequisiti

Competenze Informatiche e di Programmazione Base (IN110 Algoritmi e strutture dati)

Testi adottati

[1] Maurizio Gabbrielli, Simone Martini, Linguaggi di programmazione - Principi e paradigmi, 2/ed. McGraw-Hill, (2011).
[2] Dean Wampler, Alex Payne, Programming Scala: Scalability = Functional Programming + Objects, 2 edizione. O’Reilly Media, (2014).
[3] David Parsons, Foundational Java Key Elements and Practical Programming. Springer- Verlag, (2012).
Appunti del docente - Slide del corso a cura del docente

Bibliografia di riferimento

[4] Kip R Irvine, Assembly Language for X86 Processors. Pearson, (2015).
[5] Bruce Tate, Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages Pragmatic Bookshelf . (2010).
[6] Daniel P. Friedman, Mitchell Wand, Essentials of Programming Languages. MIT Press, (2008).

Modalità di erogazione

Lo svolgimento prevede lezioni (fortemente consigliate), esercitazioni, seminari, simulazioni e laboratori

Modalità di frequenza

La partecipazione attiva alle lezioni ed esercitazioni è fortemente consigliata,

Modalità di valutazione

La valutazione prevede una prova scritta sugli argomenti del corso
(durata 2 ore circa 16 domande aperte)
più la implementazione di un progetto software concordato con il docente e della relativa documentazione

Prove previste

  • Prova scritta
  • Valutazione di un progetto

Docente
Flavio Lombardi
Curriculum
Modellistica fisica e simulazioni numeriche
Anno di corso
1
Periodo
Primo semestre
Ore
72
CUIN
260008611

Programma

Il corso di Linguaggi di Programmazione ha come obiettivo quello di presentare i principali concetti della teoria dei linguaggi formali e la loro applicazione alla classificazione dei linguaggi di programmazione. Introdurre le principali tecniche per l'analisi sintattica dei linguaggi di programmazione. Imparare a riconoscere la struttura di un linguaggio di programmazione e le tecniche per implementarne la macchina astratta. Conoscere il paradigma orientato agli oggetti ed altri paradigmi non imperativi.

Prerequisiti

Competenze Informatiche e di Programmazione Base (IN110 Algoritmi e strutture dati)

Testi adottati

[1] Maurizio Gabbrielli, Simone Martini, Linguaggi di programmazione - Principi e paradigmi, 2/ed. McGraw-Hill, (2011).
[2] Dean Wampler, Alex Payne, Programming Scala: Scalability = Functional Programming + Objects, 2 edizione. O’Reilly Media, (2014).
[3] David Parsons, Foundational Java Key Elements and Practical Programming. Springer- Verlag, (2012).
Appunti del docente - Slide del corso a cura del docente

Bibliografia di riferimento

[4] Kip R Irvine, Assembly Language for X86 Processors. Pearson, (2015).
[5] Bruce Tate, Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages Pragmatic Bookshelf . (2010).
[6] Daniel P. Friedman, Mitchell Wand, Essentials of Programming Languages. MIT Press, (2008).

Modalità di erogazione

Lo svolgimento prevede lezioni (fortemente consigliate), esercitazioni, seminari, simulazioni e laboratori

Modalità di frequenza

La partecipazione attiva alle lezioni ed esercitazioni è fortemente consigliata,

Modalità di valutazione

La valutazione prevede una prova scritta sugli argomenti del corso
(durata 2 ore circa 16 domande aperte)
più la implementazione di un progetto software concordato con il docente e della relativa documentazione

Prove previste

  • Prova scritta
  • Valutazione di un progetto

Docente
Flavio Lombardi
Curriculum
Analisi dei dati e statistica
Anno di corso
1
Periodo
Primo semestre
Ore
72
CUIN
260008667

Programma

Il corso di Linguaggi di Programmazione ha come obiettivo quello di presentare i principali concetti della teoria dei linguaggi formali e la loro applicazione alla classificazione dei linguaggi di programmazione. Introdurre le principali tecniche per l'analisi sintattica dei linguaggi di programmazione. Imparare a riconoscere la struttura di un linguaggio di programmazione e le tecniche per implementarne la macchina astratta. Conoscere il paradigma orientato agli oggetti ed altri paradigmi non imperativi.

Prerequisiti

Competenze Informatiche e di Programmazione Base (IN110 Algoritmi e strutture dati)

Testi adottati

[1] Maurizio Gabbrielli, Simone Martini, Linguaggi di programmazione - Principi e paradigmi, 2/ed. McGraw-Hill, (2011).
[2] Dean Wampler, Alex Payne, Programming Scala: Scalability = Functional Programming + Objects, 2 edizione. O’Reilly Media, (2014).
[3] David Parsons, Foundational Java Key Elements and Practical Programming. Springer- Verlag, (2012).
Appunti del docente - Slide del corso a cura del docente

Bibliografia di riferimento

[4] Kip R Irvine, Assembly Language for X86 Processors. Pearson, (2015).
[5] Bruce Tate, Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages Pragmatic Bookshelf . (2010).
[6] Daniel P. Friedman, Mitchell Wand, Essentials of Programming Languages. MIT Press, (2008).

Modalità di erogazione

Lo svolgimento prevede lezioni (fortemente consigliate), esercitazioni, seminari, simulazioni e laboratori

Modalità di frequenza

La partecipazione attiva alle lezioni ed esercitazioni è fortemente consigliata,

Modalità di valutazione

La valutazione prevede una prova scritta sugli argomenti del corso
(durata 2 ore circa 16 domande aperte)
più la implementazione di un progetto software concordato con il docente e della relativa documentazione

Prove previste

  • Prova scritta
  • Valutazione di un progetto

Esplora gli obiettivi dell’insegnamento

Ambito disciplinare: Attività formative affini o integrative

Risultati di apprendimento attesi — Flavio Lombardi

Acquisire conoscenza e competenza sui Linguaggi di Programmazione

Risultati di apprendimento attesi — Flavio Lombardi

Acquisire conoscenza e competenza sui Linguaggi di Programmazione

Risultati di apprendimento attesi — Flavio Lombardi

Acquisire conoscenza e competenza sui Linguaggi di Programmazione

Esempi di domande d’esame

Flavio Lombardi

- Discutere il concetto di Astrazione e di API nel campo dei linguaggi di programmazione e delle reti, partendo da esempi reali.
- Costruire l’ASF che riconosce il linguaggio L= {w ∈{1,2}* : w finisce con almeno tre numeri pari consecutivi}
- Descrivere l’implementazione dello Scope Dinamico nei RdA.
- Confrontare principali vantaggi e svantaggi dei paradigmi Logico Dichiarativo e Funzionale.
- Discutere il problema della frammentazione Interna della memoria fornendo un esempio. Come può essere mitigato?

Flavio Lombardi

- Discutere il concetto di Astrazione e di API nel campo dei linguaggi di programmazione e delle reti, partendo da esempi reali.
- Costruire l’ASF che riconosce il linguaggio L= {w ∈{1,2}* : w finisce con almeno tre numeri pari consecutivi}
- Descrivere l’implementazione dello Scope Dinamico nei RdA.
- Confrontare principali vantaggi e svantaggi dei paradigmi Logico Dichiarativo e Funzionale.
- Discutere il problema della frammentazione Interna della memoria fornendo un esempio. Come può essere mitigato?

Flavio Lombardi

- Discutere il concetto di Astrazione e di API nel campo dei linguaggi di programmazione e delle reti, partendo da esempi reali.
- Costruire l’ASF che riconosce il linguaggio L= {w ∈{1,2}* : w finisce con almeno tre numeri pari consecutivi}
- Descrivere l’implementazione dello Scope Dinamico nei RdA.
- Confrontare principali vantaggi e svantaggi dei paradigmi Logico Dichiarativo e Funzionale.
- Discutere il problema della frammentazione Interna della memoria fornendo un esempio. Come può essere mitigato?

I corsi che comprendono questo insegnamento nell’A.A. 2026/2027

Matematica e Fisica

Fisica

Cod 198331

  • Laurea magistrale
  • 2 anni
  • 120 CFU
  • LM-17 R
Matematica e Fisica

Matematica

Cod 198373

  • Laurea magistrale
  • 2 anni
  • 120 CFU
  • LM-40 R
Matematica e Fisica

Matematica

Cod 198330

  • Laurea triennale
  • 3 anni
  • 180 CFU
  • L-35 R
API