University Courses
by Pedro Almeida

Algorithms and Data Structures

Course Focus:

Knowledge
The basics of algorithm analysis.
Fundamental abstract data types and data structures.
How the main data structures are used to solve real-world problems.
The fundamental algorithm design techniques, namely divide-and-conquer and memoization.
Several sorting algorithms, their features and application conditions.

Know How
To calculate the running time and the space requirements of a polynomial or exponential time algorithm.
To model programs using abstract data types.
To choose, compare, adapt and use suitable data structures for a given problem.
To implement data structures, in particular, using dynamic memory allocation.
To implement recursive polynomial time algorithms.

ADS Project