B5727 - INTRODUCTION TO LANGUAGES FOR ARTIFICIAL INTELLIGENCE

Anno Accademico 2024/2025

  • Docente: Maurizio Gabbrielli
  • Crediti formativi: 6
  • SSD: ING-INF/05
  • Lingua di insegnamento: Inglese
  • Moduli: Michael Lodi (Modulo 1) Maurizio Gabbrielli (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea Magistrale in Artificial Intelligence (cod. 9063)

Conoscenze e abilità da conseguire

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.

Contenuti

Module 1

Abstract machines. Python machine. Programming in Python: names and visibility, functions, immutable and mutable objects, basic data types (numbers, strings, tuples, lists, dictionaries) and their use in the solution of problems. Classes and objects. Methods and inheritance. Exceptions. Introduction to the library NumPy and its N-dimensional array objects.

Module 2

Introduction to mathematical logic. Unification. Resolution.
Introduction to logic programming. Prolog languages.
Constraint logic programming and concurrent constraint programming. Constraint programming. The language MiniZinc.

Testi/Bibliografia

Module 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 

Module 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.

Metodi didattici

Theoretical and practical class lectures.

Module 1

Formal in-class lectures. Autonomous work on guided programming exercises (outside the scheduled class times), using the Moodle platform for the course. Lectures (24 hours) will be concentrated at the beginning of the semester (before end of Oct). As it concerns the teaching methods of this course unit, all students must attend Modules 1 and 2 on Health and Safety online


Modalità di verifica e valutazione dell'apprendimento

Written and/or oral examinations at the end of each module.
Possible project work.

Module 1 will be assessed through a mandatory Python programming test, with automatic correction, using the Moodle programming platform for the course. A preliminary test could be offered in end October / early November.


Strumenti a supporto della didattica

Lectures. Practical exercises.


Orario di ricevimento

Consulta il sito web di Maurizio Gabbrielli

Consulta il sito web di Michael Lodi