Salta ai contenuti. | Salta alla navigazione

Strumenti personali


Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
Didactic period
Primo Semestre

Training objectives

The course is the introductory one about Artificial Intelligence (AI); it presents the main principles and methods in Artificial Intelligence, with particular emphasis on knowledge-based systems and computational logic techniques. The course uses the Prolog programming language as the main tool to show the above techniques.

Knowledge acquired concerns methods for modeling and representation of an Artificial Intelligence problem, and automatic techniques for searching a solution for it.
The main skills (the ability to apply knowledge acquired) will be :
- Ability to model and represent simple AI problems, starting from their textual description;
- Ability to apply research strategies, or aversary search, or constraint propagation for solving AI problems already modeled;
- Ability to show the run-time evolution of a Prolog program;
- Ability to implement a Prolog program solving a given a problem, starting from a textual description.


Knowledge of high-level programming languages, also imperative or object-oriented.
The course is not suitable for undergraduate students.

Course programme

1) Introduction to Artificial Intelligence
Knowledge-based systems: architectural organization (KB and inference engine);
2) Problem solving in AI
Forward e backward reasoning;
Solving as a search
Constraint satisfaction; library for search and CSP;
3) Knowledge Representation
Predicate Logic
Production Rules
Objects (Semantic Networks and Frames)
Description Logics (introduction)
4) Artificial Intelligence Languages: PROLOG
From Predicate Logic to Logic Programming
Prolog Language

Didactic methods

Classroom lessons are interleaved by some practical activities in the laboratories of Computer Science Engineerings, for the Prolog language, and the library.

Learning assessment procedures

The achievement of the learning goals is verified at the end of the course, by means of a final exam, and during the course itself by the student by means of the exercises proposed and solved.

The final exam consists of a written test, organized as a set of exercises (about items 2), 3), 4), see course program).
In particulr, exercises on:
- modeling and solving by: first-order logic / constraint programming / heuristic search, simple AI problems;
- solving games with adbersary search;
- analysis and/or synthesis of Prolog programs;
- an open question about all the topics presented in the course.

The total marks for the test sum up to 32 points, with a minimum threshold of 18/32 points; below the threshold the test is considered as "failed". The final mark is equal to the total marks achieved in the test; if the marks is equal or exceeds 31 points, the final mark will be "30 with honor / 30". During the written test it is strictly forbidden to consult textbooks, personal notes or any other external source.

Upon an explicit request from the student, it is possible to take an additional oral exam. In such case, questions of the (non mandatory) interview will be about all the topics and contents introduced within the course, and also about a specific topic/student project that must be agreed with the teacher before the colloquium. Upon a successful interview the final mark can be increased up to a maximum of 3 more points with respect to the marks obtained in the written test.

The student can take the written test many times, either because previous tests were failed, or because the marks were not satisfactory. When a student submit the test to the teacher, the results obtained in the previous tests are voided, and only the more recent marks will be taken into consideration.

Reference texts

All the slides used during the lessons are available at the Classroom of the course.
Moreover, the texts of all the final exams of previous academic years are available, and the students are encouraged to use them to improve and test their preparation.

These textbooks are recommended:

About Artificial Intelligence:
• S. J. Russel, P. Norvig: "Artificial Intelligence: A modern approach", Prentice Hall, Last or previous edition. (available in english also)

About Prolog:
L.Console, E.Lamma, P.Mello, M. Milano: "Programmazione Logica e Prolog", UTET, Seconda Edizione, 1997.

Further readings:
E. Rich, K. Knight: “Intelligenza Artificiale”, McGraw Hill, Seconda Edizione 1992.
I. Bratko: “Programmare in Prolog per l’Intelligenza Artificiale”, Masson ed Addison-Wesley, 1988.