IA/0205/EN - ARTIFICIAL INTELLIGENCE
Academic Year 2019/2020
Free text for the University
GIORGIO FUMERA (Tit.)
- Teaching style
- Lingua Insegnamento
|[70/83] ELECTRONIC ENGINEERING||[83/15 - Ord. 2018] EMBEDDED ELECTRONICS||6||60|
|[70/90] COMPUTER ENGINEERING, CYBERSECURITY AND ARTIFICIAL INTELLIGENCE||[90/00 - Ord. 2018] PERCORSO COMUNE||6||60|
This course is taught in English, and provides basic knowledge of some of the main approaches, methods, and application fields of Artificial Intelligence, under the computer engineering perspective.
The learning outcomes expressed in terms of the Dublin descriptors are the following:
Knowledge and understanding
Students will know and understand some of the main approaches, models and algorithms of Artificial Intelligence in the following fields: graph search and constraint satisfaction problems; knowledge representation and reasoning using logical languages, and using probabilistic methods (Bayesian networks); machine learning, decision trees and artificial neural networks.
Applying knowledge and understanding
Students will be capable of solving simple problems in the fields mentioned above, and of implementing and testing computer programs to solve such problems.
Students will be able to analyze and design systems for solving simple problems in the fields mentioned above, taking into account the trade-off between computational complexity and solution quality, in terms of criteria such as accuracy and optimality.
Student will be capable of expressing and discussing issues related to Artificial Intelligence, to highlight problems and to propose solutions.
Good knowledge of elements of discrete mathematics (combinatorics), computer architecture, and at least one high-level programming language.
- Introduction and historical notes (1h).
- Graph search problems (lectures: 10h, exercises: 2h)
Formulation of search problems: state space, operators, goal, path cost, search tree. Uninformed search strategies: breadth-first, depth-first, uniform cost; notes on other search strategies: depth-limited, iterative-deepening depth-first, bidirectional. Informed, best-first search strategies: greedy search, A*; heuristic functions. Computational complexity of search algorithms.
- Constraint satisfaction problems (lectures: 2h, exercises: 1h)
- Knowledge representation and reasoning using logical languages and inference algorithms (lectures: 10h, exercises: 2h)
Introduction: logical languages, inference.
Propositional logic and first-order logic: syntax and semantics. Main inference algorithms: model checking, inference rules, forward and backward chaining, notes on the resolution algorithm.
- Knowledge representation and reasoning under uncertainty (lectures: 10h, exercises: 2h)
Notes on probability theory. Bayesian networks: defining of network structure, inference algorithms.
- Machine learning (lectures: 14h, exercises: 6h)
Basic concepts. Supervised classification problems, classification algorithms. Decision trees, learning algorithms. Neural networks, feed-forward multilayer architecture, the back-propagation algorithm; notes on deep neural networks.
Lectures: 47 hours.
In-class exercises: 13 hours.
Verification of learning
The exam consists of a written test and of a computer project.
The written test contains open questions and exercises about all the course topics.
The project can be developed individually or in groups of two students, and aims at deepening knowledge of one of the course topics; this is achieved by solving specific problem instances through a computer program which can be either implemented by the students or already available.
To pass the exam a pass mark in both the written test and the project is required; the final grade (expressed in the numeric range 18-30) will be a weighted average of the two grades: 2/3 for the written test, 1/3 for the project.
To get a pass mark on the written test, students should: be able to frame simple problems in the fields considered in this course using proper models; know the basic elements of the main approaches and algorithms for solving such problems; be able to apply such methods and algorithms to solve simple problem instances.
The grade of the written test, expressed in a numeric scale from 18 to 30, depends on the degree of knowledge of the approaches and algorithms presented during the course, and on the degree of complexity of the problems that the student will be able to address and to solve.
To get a pass mark on the project, students must show: a sufficient mastery of related models, methods and algorithms; the capability of developing computer programs to implement simple versions of such algorithms, or of using at a basic level available software implementations; the capability of applying such software tools to solve specific problem instances.
The grade of the project, expressed in the same scale as the written test, depends on: the degree of complexity of the algorithms that the student will be capable of implementing, or the level of knowledge and understanding of existing software implementations; the capability of testing such programs on specific problem instances, and of analyzing and discussing the results.
S. Russell and P. Norvig, "Artificial Intelligence - A Modern Approach", 3rd Ed., Prentice Hall, 2009.
Teaching material is available at the course web site:
The web site includes an extended version of the lecture slides, in-class exercises (including solutions), and additional resources on Artificial Intelligence (textbooks, links to relevant Web sites, etc.).