Foundations of Computing - INTELLIGENZA ARTIFICIALE (2019/2020)

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

Go to lesson schedule

Laboratorio 2 II 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 student 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 knowledge will allow the student to: i) apply the state space search techniques to problems of different nature; ii) apply the main solution algorithms for constrained networks both in the context of satisfiability and optimization; iii) use the main solution techniques related to probabilistic reasoning, with particular emphasis on Bayesian networks, Markov decision processes and reinforcement learning.

At the end of the course the student will be able to: i) choose the most appropriate solution technique for different problems; ii) 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) Bayesian networks (definitions, main concepts and inference methods); ii) Markov decision processes (definitions and main solution techniques); iii) reinforcement learning (basic concepts and solution
techniques, e.g. Q-Learning).
Implementing (through assisted software development) the main solution techniques presented during the course related to state space search and probabilistic reasoning.

Students can find teaching material and further information on this course at this link:

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.

Reference books
Activity Author Title Publisher Year ISBN Note
Teoria Stuart Russell, Peter Norvig Artificial Intelligence: A Modern Approach (Edizione 2) Prentice Hall 2003 0137903952
Teoria Rina Dechter Constraint Processing (Edizione 1) Morgan Kaufmann 2003 ISBN 978-1-55860-890-0
Teoria Richard S. Satto and Andrew G. Barto Reinforcement Learning: an introduction MIT press 1998 ISBN 0-262-19398-1