19 ottobre 2021

MSc programs in Computer Engineering, Cybersecurity and Artificial Intelligence, and in Electronic Engineering

Academic year 2021/2022

This course is held under the MSc programs in Computer Engineering, Cybersecurity and Artificial Intelligence, and in Electronic Engineering. It provides basic knowledge of some of the main approaches, methods, and application fields of Artificial Intelligence, under a computer engineering perspective. The following areas are covered:

  • graph search and constraint satisfaction problems
  • deterministic knowledge representation and reasoning using logical languages
  • Bayesian networks for knowledge representation and reasoning under uncertainty
  • introduction to machine learning: supervised classification, decision trees, artificial neural networks

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

ECTS credits: 6


  • Introduction to the course (1 h)
  • 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 (time and space) complexity.
    Constraint satisfaction problems: formulation and constraint representation; backtracking depth-first search algorithm and its main 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.
  • Bayesian networks for 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)
    Learning from examples. Supervised classification problems, classification algorithms.
    Decision trees. The ID3 learning algorithm.
    Artificial neural networks. The perceptron and its learning algorithm. Feed-forward multilayer architecture and back-propagation learning algorithm.
    Notes on deep neural networks.


The course starts on Tue., Sept. 28, 2021.

Lectures will be held according to the following timetable:

  • Tuesday, 15-18, room N_3B
  • Thursday, 10-13, room N_3A

Teaching material


  • 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

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

Lectures schedule (academic year 2020/2021)

Notice on the use of lecture recordings (in Italian): Le registrazioni delle lezioni svolte in Aula virtuale disponibili attraverso i link riportati nella tabella sottostante non sono state oggetto di post-produzione, ma sono la mera riproduzione della lezione svolta in modalità telematica. Le registrazioni potranno essere utilizzate esclusivamente per un uso strettamente personale e ad esclusivo fine di studio. Secondo quanto disposto nel D.R. 341/2020 del 24/03/2020 (art. 4), “E’ fatto divieto agli studenti fruitori di registrare, fare copia, elaborare o diffondere in alcun modo, nonché di utilizzare per altre finalità diverse da quelle didattiche o comunque con altre finalità e modalità non consentite dalla normativa, il materiale in teledidattica messo a disposizione dall’Ateneo”.

  • 16/10/2020: Introduction to Artificial Intelligence. Graph search problems: problem formulation, tree-search algorithm.

  • 23/10/2020: Uninformed search strategies: breadth-first and depth-first search. Effectiveness: completeness and optimality. Efficiency: computational (time and space) complexity. Informed search strategies: heuristic functions, A*-search.

  • 6/11/2020: Constraint satisfaction problems: formulation, depth-first backtracking algorithm, heuristics (m remaining values, degree, least contraining value). Knowledge-based systems: logical languages for knowledge representation and inference. Propositional logic: syntax, semantics (truth tables of the main logical connectives).

  • 13/11/2020: Propositional logic: the implication connective. Inference in propositional logic: definition of logical entailment; the model checking inference algorithm; inference rules; inference algorithms based on inference rules: forward and backward chaining for Horn clauses; the resolution algorithm. Limitations of propositional logic.

  • 20/11/2020 (part 1, part 2): Predicate logic: syntax and semantics – domain of discourse, constant symbols, predicate symbols, function symbols, logical connectives, variable symbols, universal and existential quantifiers. Knowledge representation and inference in uncertain environments using probabilistic tools: definitions of probability.

  • 24/11/2020 (part 1, part 2): Exercises on graph search algorithms and on knowledge representation using logical languages.

  • 27/11/2020: Fundamentals of probability theory. Factorization of the joint probability density functions of a set of random variables using the chain rule.

  • 1/12/2020 (part 1, part 2): Exercises on knowledge representation using logical languages.

  • 4/12/2020 (part 1, part 2): Bayesian Networks: representation, inference algorithms. Machine learning: introduction.

  • 15/12/2020: Main components of an automatic classification system based on machine learning: input representation, classifier model, learning algorithm, training set. The Decision Tree classifier model. Learning algorithms for decision trees; the ID3 learning algorithm; evaluating the discriminant capability of attributes through the entropy measure.

  • 18/12/2020: Decision tree pruning to prevent over-fitting. Artificial neural networks: the perceptron; perceptron learning algorithm; feed-forward multi-layer architecture; the backpropagation learning algorithm.


The exam consists of a written test and of 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 student's 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

The computer project should be agreed with the instructor. Possible topics will be discussed during lectures.

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.

Dates of the next exams (written test):

  • Thu., November 4, 2021 (time and room to be defined)

Enrolment through the esse3 portal is required (deadline: two days before the exam).

Covid19 emergency – Online examinations

Up to September 2021 examinations have been held online due to Covid19 emergency, according to the following procedure:

  • online examination procedure (EN, IT)
  • online written test: operational procedure (EN, IT)

Useful links

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: October 19, 2021

Questionario e social

Condividi su: