Competencies and objectives
Course context for academic year 2026-27
The course Analysis and Design of Algorithms (ADA) is the natural continuation of the programming subjects taken during the first and second years, as well as a direct complement to the Data Structures course. In this regard, ADA helps students consolidate their previous programming knowledge and progress from the mere construction of programs towards the systematic study of the efficiency, correctness, and suitability of algorithmic solutions.
This course represents students' first formal introduction to algorithmics, one of the fundamental pillars of computer science. Its importance is reflected in the development of any software application, since implementing a functional solution is not enough: it is also necessary to determine whether that solution is appropriate, efficient, scalable, and computationally sustainable.
Throughout the course, students are introduced to the methodology required to analyse algorithm efficiency, as well as to the main algorithm design techniques and the paradigmatic algorithms associated with each of them. These contents are directly related to competences such as designing solutions to computing problems, analysing the suitability and complexity of proposed algorithms, and building robust, secure, and efficient applications.
For these reasons, the techniques studied in ADA are essential for the effective and efficient development of software. They also provide a crucial foundation for successfully approaching later subjects in the degree, especially those related to advanced software development, artificial intelligence, optimisation, data science and, more generally, any field in which computational problems must be solved rigorously and efficiently.
Learning outcomes / Course competencies (verified by ANECA in official undergraduate and Master’s degrees) for academic year 2026-27
Specific Competences (CE)
- CE6 : Understand and apply basic computer technology algorithmic procedures to design solutions to problems, analysing the suitability and complexity of the proposed algorithms.
- CE8 : Capacity to analyse, design, build and maintain robust, secure and efficient applications, choosing the most appropriate paradigm and programming languages.
Learning outcomes (Training objectives)
No data
Specific objectives stated by the academic staff for academic year 2026-27
The main objective of this course is to provide students with the theoretical and practical foundations required to understand, analyse, and design efficient algorithms. To this end, students are expected to acquire a rigorous methodology that enables them to evaluate the behaviour of an algorithm, estimate its computational complexity, and compare different solutions to the same problem.
More specifically, the course aims to achieve the following objectives:
- To understand and apply the methodology required to analyse algorithm efficiency, both in terms of time and space.
- To understand the concept of computational complexity and use it as a criterion for assessing the suitability of an algorithmic solution.
- To become familiar with the main algorithm design techniques and identify the types of problems for which each technique is appropriate.
- To study the paradigmatic algorithms associated with each design technique, analysing their behaviour, advantages, limitations, and computational complexity.
- To develop the ability to select, adapt, or design suitable algorithms to solve computational problems effectively and efficiently.
General
Code:
34018
Lecturer responsible:
Morales García, Juan
Credits ECTS:
6,00
Theoretical credits:
1,20
Practical credits:
1,20
Distance-base hours:
3,60
Departments involved
-
Dept:
Software and Computing Systems
Area: Languages and Computing Systems
Theoretical credits: 1,2
Practical credits: 1,2
This Dept. is responsible for the course.
This Dept. is responsible for the final mark record.
Study programmes where this course is taught
-
DOUBLE DEGREE IN COMPUTER ENGINEERING AND BUSINESS ADMINISTRATION
Course type: COMPULSORY (Year: 3)
-
DEGREE IN COMPUTER ENGINEERING
Course type: COMPULSORY (Year: 2)

