Computer Engineering

Data Structures and Algorithms

<< back to Curriculum Plan

Publication in the Diário da República: Despacho n.º 8644/2020 - 08/09/2020

5 ECTS; 2º Ano, 1º Semestre, 28,0 PL + 28,0 TP , Cód. 911912.

Lecturer
- Paulo Alexandre Gomes dos Santos (1)(2)

(1) Lead Professor
(2) Teaching Professor

Prerequisites
Not applicable.

Objectives
1. Describe the most common data structures and algorithms, as well as their advantages, limitations, and applications;
2. Use data structures to solve concrete problems;
3. Design, develop, and test code to solve medium and large-scale problems;

Program
1 - Algorithm Development Techniques:
1.1 - Iterative Algorithms
1.2 - Recursive Algorithms
2 - Complexity Analysis:
2.1 - A Priori and A Posteriori Complexity Analysis
2.2 - The Big O Notation
3 - Sorting Algorithms:
3.1 - Basic Sorting Algorithms: Bubble Sort, Insertion Sort, Straight Sort
3.2 - Intermediate Sorting Algorithms: Shell Sort
3.3 - Advanced Sorting Algorithms: Merge Sort, Quick Sort
4 - Linear Data Structures:
4.1 - Stacks
4.2 - Singly Connected and Doubly Connected Lists
4.3 - FIFO, Filo, and Circular Queues
5 - Hierarchical Data Structures:
5.1 - Binary Search Trees
5.2 - Balanced Binary Search Trees (AVL)
5.4 - Heap Min and Heap Max
5.5 - Hash Tables
6 - Graphs:
6.1 - Graph Representation Methods
6.2 - Shortest Path Algorithms
6.2 - Maximum Flow Algorithms
6.3 - Minimum Spanning Tree Algorithms

Evaluation Methodology
Continuous assessment:
Two test with a minimum grade of 7.00 out of 20 and a Practical Project with a minimum grade of 10.00 out of 20, and a final (weighted) grade greater than or equal to 10 points.

Exam:
An exam, with a theoretical part, requiring a minimum grade of 7.00 out of 20, and a practical part, requiring a minimum grade of 10.00 out of 20, and a final (weighted) grade of 10 points or higher.

Bibliography
- Stein, C. e Rivest, R. e Leiserson, C. e Cormen, T. (2002). Algoritmos Teoria e Prática – Tradução da 2ª Edição Americana. Brasil: Editora Campus
- Tongo, L. e Barnett, G. (2008). Data Structures and Algorithms. EUA:

Teaching Method
Lectures covering the course content. Practical laboratory sessions for problem-solving and knowledge consolidation using computers.

Software used in class
NetBeans, JUnit and Java

 

 

 


<< back to Curriculum Plan
ISO 9001
NP4552
SGC
KreativEu
erasmus
catedra
b-on
portugal2020
centro2020
compete2020
crusoe
fct
feder
fse
poch
portugal2030
poseur
prr
santander
republica
UE next generation
Centro 2030
Lisboa 2020
Compete 2030
co-financiado