cod. 1009202

Academic year 2023/24
2° year of course - First semester
- Stefano CAGNONI
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ingegneria informatica
Type of training activity
48 hours
of face-to-face activities
6 credits
hub: PARMA
course unit

Learning objectives

The objective of this module is to provide students with the theoretical basis and practical knowledge of some relevant machine-learning and evolutionary computation algorithms, aimed at classifying data and optimizing classification and data analytics methods.

The methods described in the course will allow students to:
- learn and use inductive-learning algorithms
- learn and use neural nets and other algorithm classes for the supervised classification of data
- learn and use the main supervised and unsupervised clustering algorithms
- learn and use evolutionary computation and swarm intelligence algorithms


Entry-level courses in linear algebra and probability theory, such as those normally offered in the corresponding 3-year Laurea course, are necessary pre-requisites for this course.

Course unit content

- Machine Learning Principles
- Supervised Learning
Decision Trees
Bagging and Boosting Algorithms
Neural Networks
Deep Learning Principles
Support Vector Machines
- Unsupervised Learning
Neural Networks
- Evolutionary Computation
Genetic Algorithms
Genetic Programming
Swarm Intelligence
- Decision Trees / kNN
- Clustering
- Multi-layer Perceptrons
- Unsupervised Neural Nets
- Convolutional Networks
- Genetic Algorithms
- Genetic Programming
- Particle Swarm Optimization

Full programme

Part 1: Introduction
Lesson 1: How to set up a machine learning experiment
Lesson 2: Learning-based classification / Classification quality assessment
Lesson 3: Introduction to WEKA

Part 2: Decision Trees
Lesson 4: Decision Trees
Lesson 5: Bagging and Boosting
Lesson 6: Support Vector Machines

Part 3: Clustering
Lesson 7: Clustering basics and unsupervised clustering: K-means / Isodata

Part 4: Neural Networks
Lesson 8: Introduction to neural networks
Lesson 9: Supervised learning algorithms: the Backpropagation algorithm
Lesson 10: Kohonen's self-organizing maps (SOM) and Learning Vector Quantization (LVQ)
Lesson 11: Deep Learning basics

Part 4: Evolutionary Computation
Lesson 12: Basics
Lesson 13: Genetic Algorithms and Genetic Programming
Lesson 14: Particle Swarm Optimization (PSO)
Lesson 15: Open research issues

Lab 1: Use of WEKA
Lab 2: Decision Trees / kNN
Lab 3: Clustering
Lab 4: Supervised Neural Nets
Lab 5: Unsupervised Neural Nets
Lab 6: Genetic algorithms
Lab 7: Genetic Programming
Lab 8: Particle Swarm Optimization
Lab 9: The Ant Trail Problem


[1] L. Vanneschi, S. Silva, “Lectures on Intelligent Systems” Springer, 2023
[2] C. W. Therrien, "Decision, estimation and classification" Wiley, 1989
[3] C. M. Bishop "Pattern Recognition and Machine Learning", Springer, 2006.
[4] R O Duda, P, E. Hart, D. G. Stork, "Pattern classification", 2nd Ed., Wiley, 2001
[5] A. Eiben, J. Smith "Introduction to Evolutionary Computing", 2nd ed., Springer, 2015.
[6] A.P. Engelbrecht "Computational Intelligence: An Introduction", 2nd. Edition, Wiley, 2007

Teaching methods

Classroom teaching, 30 hours.
Labs, 18 hours.

Homework regularly assigned. They will be a subject for the written test.

Assessment methods and criteria

Written test: open questions about both the theoretical topics dealt with in the course and the corresponding labs.
After passing the written test, a practical project will be assigned, consisting in the development of an application using the methods taught during the course, whose results will be presented and discussed by the student both as a written report and as an oral presentation.

Other information

Office Hours

By appointment (Scientific Complex, Building 1, floor 2, email stefano.cagnoni[AT]