You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Algorithms and Data Structures

Algorithms and Data Structures

Code 14335
Year 2
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements Notion of block. Iterative and Conditional Blocks. Notions of structured programming. C Language.
Mode of delivery Face-to-face
Work placements (Not applicable)
Learning outcomes This curricular unit has as objectives to acquire knowledge about:
- algorithms, in particular sorting and searching algorithms, and evaluation of the complexity of algorithms,
- data structures such as linked lists, stacks, queues, unbalanced and balanced trees, heaps and graphs,
- how to select the most appropriate data structures, given a practical problem,
- how to select the most appropriate algorithms for a given set of data structures.
Upon the conclusion of the course, students shall be able:
- to have developed skills on using algorithms, particularly in problems involving sorting and/or searching,
- to assess the efficiency of the algorithms by analyzing the technical complexity, in order to select the most efficient algorithms to solve any given problem,
- to explain the requirements of efficiency and performance for algorithms and data structures,
- to analyse the computational (spatial, temporal) complexity of programs.
Syllabus Algorithms
- Complexity analysis of algorithmd: Big-O
- Amortized analysis of algorithms
- Sorting algorithms in arrays
- Searching algorithms in arrays
Abstract Data Structures
- Simple linked lists
- Double linked lists
- Stacks
- Queues
- Binary trees
- Binary search trees
- N-ary trees
Balanced search trees
- Adelson-Velskii Landis (AVL)
- Red-Black
- Interval Tree
- 2-3 trees
Priority queue (Heap)
- Binary heap
- Binomial heap
Graphs
- Types of Graphs
- Data structures for graph representation
- Graph search algorithms: Breadth First Search, and Depth First Search
- Graph problems: Minimum Spanning Tree, Shortest Path, Maximum Flow, and Optimal Matching Problem
Main Bibliography "Competitive Programmer’s Handbook"; Antti Laaksonen; Draft July 3, 2018
"Algorithms", 4th Edition, 2011; Robert Sedgewick and Kevin Wayne; Addison Wesley, ISBN-13: 978-0321573513
"Introduction to Algorithms", 3rd Edition, 2009; Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein; MIT Press, ISBN-13: 978-0262033848
"Estruturas de Dados e Algoritmos em C", 2008; António Manuel Adrego da Rocha; FCA-Editora de Informática. Coleção: Tecnologias de Informação; ISBN: 9789727222957
"Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms", 3rd Edition, 2001; By Robert Sedgewick; Addison-Wesley Professional; ISBN: 0201756080
"Data Structures and Algorithm Analysis", Edition 3.2 (C++ Version), 2013; Clifford A. Shaffer; Department of Computer Science, Virginia Tech.
Teaching Methodologies and Assessment Criteria In order to guarantee that students achieve the main goals expected for this course, classes will be divided into the following types:
- 2h/week theoretical classes (T) for showing the main theoretical concepts, methods and algorithms, using the board, oral discussion and data projection as main tools;
- 2h/week practical classes (PL), which will serve for applying and testing concepts learned during the theoretical classes, by problem solving and exercise sheets;
- 2h/week of tutorial sessions
Evaluation:
- The evaluation is carried out by two written tests (8 points each), and 2 practical tests (4 points)
- Final exam for admitted students

Written test 1: April, 16; 6 pm
Written test 2: Mai, 21; 6 pm
Language Portuguese. Tutorial support is available in English.
Last updated on: 2025-03-03

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.