Foundations of Artificial Intelgence (2020/2021)

Course code
Alessandro Farinelli
Academic sector
Language of instruction
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 5 I semestre Alessandro Farinelli

Go to lesson schedule

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; adversarial search.
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);
Intelligent agents: multi-agent systems, coordination.
Probabilistic reasoning: i) Representing unceratinty 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 IA module can be achieved with a single test or with partial tests.
The single written test will be done at the exam date.
The partial tests includes two written tests (one during the course and one at the end of the course) or a written test (done during the course) and a project (usually with a consistent programming part). The partial tests modalities includes a test in the programming laboratory (optional). This test aims at evaluating the software produced by the students during the course.