Curso Técnico Superior Profissional
Desenvolvimento de Software
Área Científica
Ciências informáticas
Duração
Semestral
Unidade Curricular
Algoritmos e Estruturas de Dados
ECTS
3
Horas de Contacto Teórico Práticas
50h
OBJETIVOS
No final da Unidade Curricular o aluno deve ser capaz de:
1. Avaliar a eficiência das soluções algorítmicas;
2. Desenhar as estruturas de dados de uma aplicação informática de pequena e média complexidade, de acordo com o paradigma de POO.
3. Compreender e definir, usando programação genérica, algumas das estruturas de dados abstratas (ADTs) mais importantes;
4. Construir as estruturas de dados de baixo nível e respetivos algoritmos que dão suporte dinâmico às ADTs principais.
CONTEÚDOS PROGRAMÁTICOS
1. Análise de algoritmos – eficiência algorítmica; – análise assimptótica; – notação big-Oh.
2. Alguns recursos do C# para a implementação de ADTs – tipos de dados abstratos (ADTs); – classes vs interfaces; – classes genéricas; – tratamento de exceções.
3. Definição e implementação de estruturas de dados lineares – listas simples e duplamente ligadas; – stack (pilha) baseada num array; – stack baseada numa lista ligada; – queue (fila) baseada num array circular; – queue baseada numa lista ligada; – deque (fila com dupla terminação) baseada num array circular; – deque baseada numa lista duplamente ligada; – dicionários; – Implementação de iteradores.
4. Estruturas em árvore – definição de estruturas em árvore; – algoritmos de travessia; – árvores de decisão; – árvores binárias de pesquisa; – filas prioritárias baseadas em heaps.
BIBLIOGRAFIA
1. “Data Structures and Algorithms using C#”, Michael McMillan, Cambridge University Press, 2007.
2. “Data Structures and Algorithms: Annotated Reference with Examples”, Granville Barnett, and Luca Del Tongo, 2008.
3. “C# 7. 0 com Visual Studio – Curso Completo”, Henrique Loureiro, FCA, 2017.