B5727 - Introduction to Languages for Artificial Intelligence

Academic Year 2024/2025

  • Moduli: Michael Lodi (Modulo 1) Maurizio Gabbrielli (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)

Learning outcomes

At the end of the course, the student has an understanding of the main linguistic techniques used in the context of AI, including the main aspects related to functional, logic and constraint programming.

Course contents

Modulo 1

Macchine astratte. La macchina Python. Programmazione in Python: nomi e loro visibilità, funzioni, oggetti modificabili e non modificabili, tipi di dato (numeri, stringhe, ennuple, liste, dizionari) e loro uso nella risoluzione di problemi di media difficoltà. Classi e oggetti; metodi ed ereditarietà. Eccezioni. La libreria NumPy e i suoi array N-dimensionali.

Modulo 2

Introduzione alla logica matematica. Unificazione. Risoluzione.
Introduzione alla programmazione logica. I linguaggi Prolog.
Programmazione logica con vincoli e programmazione concorrente con vincoli. Programmazione con vincoli. Il linguaggio MiniZinc.

Readings/Bibliography

Modulo 1

John V. Guttag. Introduction to Computation and Programming Using Python Third Edition: With Application to Computational Modeling and Understanding Data. MIT Press, 2021.
https://mitpress.mit.edu/books/introduction-computation-and-programming-using-python-third-edition 

Modulo 2

Dirk van Dalen. Logic and structure. 4th edition, Springer.

K. Doets. From Logic to Logic Programming. The Mit Press.

Russell, Norvig. Artificial Intelligence: A Modern Approach (any edition). Pearson.

Teaching methods

Lezioni frontali ed esercitazioni.

Modulo 1

Lezioni in aula. Esercitazioni autonome (fuori dall’orario di lezione) di programmazione, utilizzando la piattaforma Moodle del corso. Le lezioni (24 ore) sono concentrate nel periodo iniziale del semestre (entro la fine di ottobre). In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, in modalità e-learning

Assessment methods

Esame orale e/o scritto alla fine di ogni modulo. Possibile progetto.

Modulo 1: sarà proposto un test obbligatorio di programmazione in Python, a correzione automatica su dati di test, sulla piattaforma Moodle del corso. Un primo test potrebbe essere offerto nel mese di Novembre (o fine Ottobre)


Teaching tools

Esercitazioni in aula.


Office hours

See the website of Maurizio Gabbrielli

See the website of Michael Lodi