Foundations of Computing - INTELLIGENZA ARTIFICIALE (2017/2018)

Course code
Name of lecturer
Alessandro Farinelli
Number of ECTS credits allocated
Academic sector
Language of instruction
II sem. dal Mar 1, 2018 al Jun 15, 2018.

To show the organization of the course that includes this module, follow this link * Course organization

Lesson timetable

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:

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

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.