Master's degree in Computer Science and Engineering

Master's degree in Computer Science and Engineering

Foundations of Artificial Intelligence (2020/2021)

Course code
Alessandro Farinelli
Academic sector
Language of instruction


Teaching is organised as follows:
Activity Credits Period Academic staff
Teoria 5 I semestre Alessandro Farinelli
Laboratorio 1 I semestre Alessandro Farinelli

Go to lesson schedule

Learning outcomes

The class presents the main techniques for problem solving, based on the central paradigm of symbolic and probabilistic representations. The objective is to provide the students with the ability to design, apply and evaluate algorithms for difficult problems, meaning that their mechanical solution captures aspects of artificial intelligence or computational rationality. At the end of the course the students must demonstrate to know and understand the main techniques for state space search, to understand the fundamental concepts related to constrained networks and to know the basic concepts related to probabilistic reasoning and reinforcement learning. This will allow the students to choose the most appropriate solution techniques for different problems and to continue independently the studies in Artificial Intelligence, deepening the topics covered in class, both on other texts and on scientific publications.


Problem solving as search in a state space; un-informed search procedures; heuristic search procedures.
Problem solving based on constraint processing (satisfaction and optimization); Solution techniques based on search (Backtracking, Branch and Bound) and inference (Join Tree Clustering, Bucket Elimination);
Probabilistic reasoning: i) Representing uncertainty by using probability theory; ii) Markov decision processes (definitions and main solution techniques); iii) reinforcement learning (basic concepts and solution techniques, Deep Reinforcement Learning).
Implementing (through assisted software development) the main solution techniques presented during the course related to state space search and probabilistic reasoning.

Assessment methods and criteria

The final grade for the AI ​​module will be achieved with a single oral test.

The oral exam can follow two modalities: i) oral test on topics studied during the course (including the programming lab.); ii) oral test on a specific project assigned by the teacher (and on the programming lab).

For what concerns the oral test on topics studied during the course, the teacher asks the students to carry out some exercises and asks questions to evaluate the level of comprehension of the topics covered during the course.

For what concerns the oral test on the project, the teacher and the student agree on a topic for the project which will include a substantial programming part. The student will carry out the project and during the oral test she/he will explain the project to the teacher that will ask questions to evaluate the level of comprehension of the topic.

The topic for the project and the exact date and time for the oral test of each student are agreed with the teacher at the end of the course.

For what concerns the progamming lab, during the course duration the students will implement some of the algorithms studied in class. The laboratory part is evaluated during the oral test. For this evaluation, the students will deliver the software they developed to the teacher and the teacher will ask questions to assess the level of understanding of the delivered software.

© 2002 - 2021  Verona University
Via dell'Artigliere 8, 37129 Verona  |  P. I.V.A. 01541040232  |  C. FISCALE 93009870234