Go to:
Logótipo
You are here: Start > L.EIC011

Algorithms and Data Structures

Code: L.EIC011     Acronym: AED

Keywords
Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2025/2026 - 1S Ícone do Moodle

Active? Yes
Web Page: http://www.dcc.fc.up.pt/~pribeiro/aulas/aed2526/
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L.EIC 400 Syllabus 2 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Pedro Manuel Pinto Ribeiro
Ana Paula Nunes Gomes Tomás
Mais informaçõesLast updated on 2025-08-10.

Fields changed: Calculation formula of final grade, Avaliação especial, Software de apoio à Unidade Curricular, URL da página, Melhoria de classificação

Teaching language

Suitable for English-speaking students

Objectives

At the end of the course, students should be able to:

  1. analyze the temporal and spatial complexity of algorithms;
  2. analyze the correctness of simple algorithms;
  3. know the main search and sorting algorithms and their complexity;
  4. understand the concept of abstract data type and know how to organize programs around this concept;
  5. know the fundamental data structures (and associated algorithms and respective complexity) used to efficiently implement common abstract data types in collection libraries;
  6. choose appropriate collections, data structures and algorithms to solve practical problems;
  7. write programs in C++ that implement and use the fundamental data structures and algorithms.

 

Learning outcomes and competences

At the end of this unit course, students should: model problems following the object-oriented paradigm; solve problems using abstract data types and simple data structures (linear and non linear).

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

Student should have basic knowledge of programming and C++.

Program

Basic concepts and techniques: space and time complexity of algorithms; abstract data types; analysis of algorithm correctness.
Arrays searching and sorting algorithms.
Linear data structures and their implementation: lists, stacks, and queues.
Hierarchical data structures and their implementation: binary trees; binary search trees; balanced binary trees. Applications.
Hash tables and related algorithms.
Priority queues and binary heaps.
Basic graph algorithm: types of graphs; representation; depth-first and breadth-first search. Applications: topological sorting; cycles; connectivity.

Mandatory literature

Weiss, Mark Allen; Data structures and algorithm analysis in C++. ISBN: 0-201-36122-1
Sedgewick, Robert; Algorithms in C++. ISBN: 0-201-35088-2
Thomas H. Cormen; Introduction to algorithms. ISBN: 978-0-262-53305-8 ((3rd or 4th edition))

Teaching methods and learning activities

Theoretical classes are for formal exposition of the subjects, with the presentation of examples and their analysis and discussion.

In practical classes exercises are solved, mainly, programming exercises in C ++, that focus on topics addressed in the theoretical classes.

The assessment is carried out throughout the semester, on previously announced dates, where students are continuously evaluated at the theoretical and practical level. During the semester, there are three individual assessment points: 2 practical tests and 1 final written exam.

Software

Mooshak - A system for automatic evaluation of code
VSCode
gcc gnu compiler (version c++17)

keywords

Physical sciences > Computer science > Programming
Physical sciences > Mathematics > Algorithms

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Designation Weight (%)
Teste 25,00
Trabalho laboratorial 5,00
Exame 70,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 55,00
Frequência das aulas 52,00
Trabalho laboratorial 55,00
Total: 162,00

Eligibility for exams

Conditions to obtain eligibility for exams: do not exceed the absence limit (25% of practical classes)  

Calculation formula of final grade

Final mark is computed up from:

- NP: practical grade, worth 30% of the final grade. Obtained with 3 components: 2 practical tests (2.5 points each) and continuous evaluation solving exercises during the semester (1 point). 

- EN: "normal" exam grade, worth 70% of the final grade, obtained with a written exam with a grade from 0 to 20.

"Normal" season classification: C = EN*0.7 + NP ≥ 9.5

- ER: on the "appeal" season, a single exam will be made, with a grade from 0 to 20, and it is not possible to repeat the practical prigramming tests.

"Appeal" (resit) season classification: C = ER*0.7 + NP ≥ 9.5

Special assessment (TE, DA, ...)

The same rules apply for all students.

Classification improvement

For students enrolled in AED in 2025/2026 for the first time, only the exam component may be improved.

Students who did not pass the course in 2024/2025 and completed the practical component that academic year may keep their NP grade if they wish. They must inform the lecturers at the beginning of the academic year.

Students who passed the course in 2024/2025 and wish to improve their grade in 2025/2026 must contact the lecturers at the beginning of the academic year if they wish to improve their practical test scores (otherwise, the NP grade they obtained in 2024/2025 will be considered).

Recommend this page Top
Copyright 1996-2026 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2026-05-03 at 14:53:41 | Acceptable Use Policy | Data Protection Policy | Complaint Portal | Electronic Yellow Book