Artificial Intelligence Code:  M0.539    :  6
View general information   Description   Information prior to enrolment   Learning objectives and results   Content   View the UOC learning resources used in the subject   Additional information on support tools and learning resources   Guidelines on assessment at the UOC   View the assessment model  
This is the course plan for the second semester of the academic year 2023/2024. To check whether the course is being run this semester, go to the Virtual Campus section More UOC / The University / Programmes of study section on Campus. Once teaching starts, you'll be able to find it in the classroom. The course plan may be subject to change.

The main motivation of this subject is to make known the automatic learning and how it is placed within the field of the Artificial intelligence.

In Artificial Intelligence (Degree in Computer Engineering) an overview of the Artificial Intelligence was given and some of the so-called classical methods and techniques, such as problem solving and search and knowledge-based systems, more advanced techniques such as neural networks and approximate reasoning were also seen. In the subject of Learning Computational problems for learning (supervised and unsupervised) and multi agent systems were introduced. In this subject you will deepen into advanced learning problems, introducing features extraction systems, non-linear systems based on kernels, optimization processes or deep learning techniques, always from a practical side touching examples of real problems.


It is advisable to have studied the subjects of Artificial Intelligence and Computational Learning of the degree in Computer Engineering.

It is also highly recommended to have passed the subject of programming practices or equivalent in some computer science program.

Although the course is not designed to have a high programming load, the most basic concepts of algorithmic will be taken for granted.


The general competences of the Master in this subject are:

  • Ability to project, calculate and design products, processes and facilities in all areas of computer engineering.
  • Capacity for mathematical modeling, calculation and simulation in technological centers and engineering of company, particularly in Research, development and innovation in all areas related to computer engineering
  • Ability to apply acquired knowledge and solve problems in new or little known environments within Of broader and multidisciplinary contexts, being able to integrate this knowledge.
  • Possess continuous, self-directed and autonomous learning skills.
  • Ability to model, design, define architecture, deploy, manage, operate, manage and maintain applications, networks, systems, services and content.
  • Ability to ensure, manage, audit and certify the quality of the developments, processes, systems, services, applications and computer products.
  • Ability to understand and be able to apply advanced computer skills and numerical methods or computational problems to engineering problems.

The specific competences of this subject are:

  • Understand what it is automatic learning in the context of Artificial Intelligence.
  • Distinguish between different types and methods of learning.
  • Know the different methods of extraction of characteristics on a given data set.
  • Know the different classification paradigms and their strengths and weaknesses.
  • Know how to evaluate the classification algorithms and draw conclusions of their efficiency, allowing to select the most suitable ones in each case.
  • Apply search techniques to a specific case.


In this subject the contents have been structured in two modules.

The first module shows an overview of learning within Artificial Intelligence. In principle, the distinction between algorithms dedicated to clustering and recommendation of information, algorithms of extraction and selection of characteristics, classification algorithms, optimization techniques and deep learning techniques. The distinction between supervised and unsupervised learning is inherent in the clustering and classification chapters, even though it is also present in the feature extraction chapter.

The second module, much shorter, is dedicated to learning the Python language. It is intended to introduce the student to some (of the many) characteristics that this language has, with a view to a better understanding of the modules of theory, and to be able to practice independently.

The detailed content of each of these modules is given below.

1. Introduction to Artificial Intelligence (AI)

1.1. Neurons and Transistors

1.2. Brief history of AI.

1.3. Areas of application

2. Recommenders and clustering

2.1. Metrics and measures of similarity

2.1.1. Application example

2.1.2. Euclidean distance

2.1.3. Pearson's Correlation

2.2. Recomender systems

2.2.1. General concepts

2.2.2. Surprise library

2.2.3. Nearest Neighbours

2.2.4. Singular Value Decomposition

2.2.5. Conclusions

2.3. Clustering algorithms

2.3.1. Application example

2.3.2. General concepts

2.3.3. Hierarchical clustering. Dendrograms.

2.3.4. K-means

2.3.5. Fuzzy K-means

2.3.6. Spectral Clustering

2.3.7. Model Based Recommenders

3. Extraction and selection of attributes

3.1. Matrix factorization techniques.

3.1.1. Singular value decomposition ¿¿(SVD)

3.1.2. Principal Component Analysis (PCA)

3.1.3. Independent Component Analysis (ICA)

3.1.4. Non-negative matrices factorization (NMF)

3.2. Data Discrimination in Classes

3.2.1. Linear discriminant analysis (LDA)

3.3. Visualization of multidimensional data

3.3.1. Multidimensional scaling (MDS)

4. Classification.

4.1. Introduction

4.1.1. Categorization of texts

4.1.2. Automatic classification learning

4.1.3. Typology of algorithms by classification

4.2. Methods based on probabilistic models

4.2.1. Naive Bayes

4.2.2. Maximum Entropy.

4.3. Methods based on distances.

4.3.1. KNN.

4.3.2. Linear classifier based on distances.

4.3.3. Clustering within classes.

4.4. Rules-based methods.

4.4.1. Decision trees.

4.4.2. AdaBoost.

4.5. Linear classifiers and methods based on Kernels.

4.5.1. Linear classifier based on scalar product

4.5.2. Linear Classifier with Kernel

4.5.3. Kernels for word processing

4.5.4. Support Vector Machines

4.6. Test protocols.

4.6.1. Validation protocols.

4.6.2. Measures of evaluation

4.6.3. Statistical Tests

4.6.4. Comparison of classifiers.

5. Optimization.

5.1. Introduction.

5.1.1. Typology of optimization methods.

5.1.2. Characteristics of optimization metaheuristics

5.2. Optimization using Lagrange multipliers.

5.2.1. Description of the method.

5.2.2. Application example.

5.2.3. Analysis of the method

5.3. Gradient descent

5.3.1. Presentation of the idea

5.3.2. Application example.

5.3.3. Additional questions

5.4. Basin hoping

5.4.1. Description of the method

5.4.2. Example of application

5.4.3. Analysis of the method

5.5. Genetic algorithms.

5.5.1. Description of method

5.5.2. Extensions and improvements.

5.5.3. Examples of application

5.5.4. Compilation of statistics

5.5.5. Combinatory problems

5.5.6. Problems with constrains

5.5.7. Analysis of the method

5.6. Ants colonies

5.6.1. Description of method

5.6.2. Application example

5.6.3. Analysis of the method

5.6.4. Source code in Python

5.7. Optimization with Particle Swarms

5.7.1. Description of method

5.7.2. Application example

5.7.3. Analysis of the method

5.7.4. Source code in Python

5.8. Taboo search.

5.8.1. Description of method

5.8.2. Application example

5.8.3. Analysis of the method

5.8.4. Source code in Python

6. Deep learning

6.1. Introduction

6.1.1. Recent achievements

6.1.2. Causes

6.1.3. Architectures

6.1.4. Libraries

6.2. Neural networks

6.2.1. Components of a neural network

6.2.2. Activation functions

6.2.3. Training of a neuran network

6.2.4. Learning problems

6.2.5. Some solutions

6.2.6. Deep learning

6.3. Multilayer Perceptron

6.3.1. Idea

6.3.2. Example of MLP

6.4. Classification of images with convolutional neural networks (CNN)

6.4.1. Implementation of CNN in Python using the Keras libraries

6.5. Recurrent networks

6.5.1. Idea

6.5.2. Programming

6.6. Other architectures

6.6.1. Auto-encoders

6.6.2. Reinforcement Learning

6.6.3. Generative Systems

7. Annex: basic statistical concepts


Classification Framework with Naïve Bayes Audiovisual
Support Vector Machines using Python and scikit-learn Audiovisual
Data Clustering with k-Means Audiovisual
Distances, similarities and normalization of data. Audiovisual
Introducción a la programación en Python Audiovisual
Inteligencia artificial en Python Audiovisual
La Librería matplotlib en Python Audiovisual
MovieLens-data Web
Código fuente. Ejemplos materiales Web
Inteligencia artificial avanzada PDF
Advanced artificial intelligence PDF
Xarxes neuronals: fonaments i intuïcions (Notebook) ???
Neuronal networks examples (Notebook) ???
Python: introducción al lenguaje de programación Audiovisual
Python: introducció al llenguatge de programació Audiovisual
Ús de Google Colaboratory per a Machine Learning Audiovisual
Uso de Google Colaboratory para Machine Learning Audiovisual


The subject is composed of didactic modules in paper support, which contain self-assessment exercises with diverse solutions and activities.

This material will be complemented with the one that the consultants put within the reach of the students to the classroom of the subject.

It the classroom there will be a space to support and solve the doubts corresponding to the Python language.


The assessment process is based on students' own work and the assumption that this work is original and has been carried out by them.

In assessment activities, the following irregular behaviours, among others, may have serious academic and disciplinary consequences: someone else being involved in carrying out the student's assessment test or activity, or the work being not entirely original; copying another's work or committing plagiarism; attempting to cheat to obtain better academic results; collaborating in, covering up or encouraging copying; or using unauthorized material, software or devices during assessment.

If students are caught engaging in any of these irregular behaviours, they may receive a fail mark (D/0) for the assessable activities set out in the course plan (including the final tests) or in the final mark for the course. This could be because they have used unauthorized materials, software or devices (e.g. social networking sites or internet search engines) during the tests, because they have copied text fragments from an external source (internet, notes, books, articles, other student's projects or activities, etc.) without correctly citing the source, or because they have engaged in any other irregular conduct.

In accordance with the UOC's academic regulations , irregular conduct during assessment, besides leading to a failing mark for the course, may be grounds for disciplinary proceedings and, where appropriate, the corresponding punishment, as established in the UOC's coexistence regulations.

In its assessment process, the UOC reserves the right to:

  • Ask the student to provide proof of their identity, as established in the university's academic regulations.
  • Request that students provide evidence of the authorship of their work, throughout the assessment process, both in continuous and final assessment, by means of an oral test or by whatever other synchronous or asynchronous means the UOC specifies. These means will check students' knowledge and competencies to verify authorship of their work, and under no circumstances will they constitute a second assessment. If it is not possible to guarantee the student's authorship, they will receive a D grade in the case of continuous assessment or a Fail in the case of final assessment.

    For this purpose, the UOC may require that students use a microphone, webcam or other devices during the assessment process, in which case it will be the student's responsibility to check that such devices are working correctly.


This subject can only be passed through a continuous assessment. The final mark on the continuous assessment will be the final mark for the subject.The subject's accreditation formula is as follows: CA