# Artificial Intelligence

##### Academic year 2019/2020

Pattern Recognition and Applications Lab |

Course description – Syllabus – Class schedule – Teaching material – Grading – Useful links – Teaching evaluation forms – News – How to contact the instructor

#### Course description

This is a graduate course under the MSc program in Computer Engineering, Cybersecurity and Artificial Intelligence and the MSc program in Electronic Engineering.

This course provides basic knowledge of some of the main approaches, methods, and application fields of Artificial Intelligence, under the computer engineering perspective. The following areas are covered:

- graph search and constraint satisfaction problems
- knowledge representation and reasoning in deterministic settings using logical languages
- knowledge representation and reasoning under uncertainty using probabilistic methods
- introduction to machine learning

**Prerequisites**: elements of discrete mathematics (combinatorics), computer architecture, at least one programming language.

**ECTS credits**: 6

#### Syllabus

##### Introduction to the course (1 h)

Historical notes on AI, AI today, philosophical and ethical issues, outline of the course.

##### Graph search and constraint satisfaction problems (lectures: 12 h, exercises: 3 h)

Formulation of graph 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 search strategies: best-first search, greedy search, A*; heuristic functions.

Properties of search algorithms: optimality, completeness, computational complexity.

Constraint satisfaction problems: formulation and constraint representation; backtracking search algorithm; heuristics: minimum remaining values, degree, least constraining value, forward checking.

##### Knowledge representation and reasoning in deterministic settings (lectures: 10h, exercises: 2 h)

Introduction: logical languages, inference algorithms.

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: 10 h, exercises: 2 h)

Fundamentals of probability theory.

Bayesian networks: network structure, inference algorithms.

##### Introduction to machine learning (lectures: 14 h, exercises: 6 h)

Basic concepts. Learning from examples. Supervised classification problems, classification algorithms.

Decision trees. The ID3 learning algorithm.

Neural networks. The perceptron and its learning algorithm. Feed-forward multilayer networks. The back-propagation learning algorithm.

Notes on deep neural networks.

#### Class schedule

This course has been taught during the 1st semester.

#### Teaching material

**Textbooks**

S.J. Russell, P. Norvig, *Artificial Intelligence: A Modern Approach*, Pearson, 2010 (3rd ed.)

Several copies of the Italian edition are available at the Faculty Library, and at other libraries of our University and outside (S.J. Russell, P. Norvig, Intelligenza Artificiale: un approccio moderno, UTET, 1998; Pearson Education Italia, 2005).

Additional resources on artificial neural networks:

- a classic textbook (several copies are available at the Faculty Library):

C.M. Bishop,*Neural networks for pattern recognition*, Oxford University Press, 1995- ch. 1 (par. 1.1 to 1.6): Statistical Pattern Recognition
- ch. 3: Single-Layer Networks
- ch. 4: The Multi-layer Perceptron

- a recent, free online book which provides a very nice and gentle introduction to artificial neural networks and deep neural networks: M. Nielsen, Neural Networks and Deep Learning

**Lecture slides and exercises**

Extended version of the slides projected during the lectures (updated on **Nov. 24, 2019**), and an example of the ID3 decision tree learning algorithm.

Exercises (updated on **Dec. 24, 2019**):

- graph search algorithms
- knowledge representation and reasoning using logical languages
- introduction to probability theory, Bayesian networks
- machine learning

**Machine learning software**

A number of implementations of learning algorithms for decision trees and artificial neural networks (beside many other classifiers) are available. Among them:

- the Python scikit-learn library (you may install before the package manager Miniconda, which also installs Python); you can refer to the teaching material on Python and on scikit-learn available on the web site of the Machine Learning course
- Weka: a Java-based software for designing classifiers and carrying out experiments
- playground: a useful tool for visualizing on a browser the inner working of feed-forward multi-layer artificial neural networks and of the backpropagation learning algorithm, based on the open source TensorFlow library

##### Written test examples

Written test of Jan. 8, 2019, including the solutions of the exercises.

#### Grading

The exam consists of a **written test** and a **computer project**:

- the
**written test**is made up of open questions and exercises about all the course topics - the
**computer project**aims at deepening knowledge of one of the course topics by solving specific problem instances through a computer program which can be either implemented by the students or already available; projects can be made individually or by groups of two students

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 pass the written test, a basic knowledge of **all** the course topics is required.

Examples of written test exercises are available on this web site. More details on possible computer projects will be given during classes.

#### Useful links

- Artificial Intelligence: A Modern Approach

Authors’ web site of the textbook, including a number of links to AI resources - Italian Association for Artificial Intelligence (AI*IA)

A non-profit academic organization for promoting study and research on AI. AI*IA yearly awards prizes to AI-related theses and grants to its members to attend AI-related events - One Hundred Year Study on Artificial Intelligence (AI100) from Stanford University: “A 100-year effort to study and anticipate how the effects of artificial intelligence will ripple through every aspect of how people work, live and play”

#### Teaching evaluation forms

Teaching evaluation forms for the past three academic years are available (in Italian):

#### How to contact the instructor

Room: Department of Electrical and Electronic Engineering (DIEE), building M, 3rd floor

Phone: 070 675 5754

E-mail: surname AT unica DOT it

**Most recent update**: December 24, 2019