Conhecimentos de Base Recomendados
Progrmação em Java, Programação Orientada a Objetos
Métodos de Ensino
Nas aulas teóricas, são apresentadas, analisadas e discutidas as estruturas de dados mais relevantes e representativas. Nas aulas laboratoriais, os alunos operacionalizam este conhecimento, realizando fichas de exercícios que englobam análise, implementação, teste e selecção de estruturas de dados.
A realização de testes laboratoriais periódicos permite monitorizar continuamente o desempenho dos alunos, enquanto que a realização de seminários promove a maior integração dos alunos no processo de aprendizagem, através da preparação e realização de apresentações sobre tópicos seleccionados aos seus colegas.
A avaliação inclui os seguintes componentes:
– Exame (12 valores)
– Componente Laboratorial (testes a realizar durante as aulas Laboratoriais) – 5 valores
– Projecto (Investigação e apresentação de uma estrutura de dados) – 3 Valores
Resultados de Aprendizagem
Compreender as técnicas de análise de complexidade algoritmica. Conhecer o API de colecções.
Aplicar o API de colecções de forma adequada.
Analisar um algoritmo de forma a descobrir a sua complexidade.
Conhecer um espectro diversificado de estruturas de dados fundamentais e avançadas Escolher as estruturas de dados de acordo adequadas para um dado o problema.
Implementar as estruturas de dados e algoritmos associados de forma correcta.
Programa
1 – Introdução
1.1 – Análise de Complexidade
1.2 – Programação genérica
1.3 – API de colecções
2 – Estruturas Fundamentais 2.1- Pilhas, Filas, Árvores
2.1.1 – Conceitos básico
2.1.2 – Aplicações – Árvores de Huffman
2.1.3 – Aplicações – Representação e cálculo de expressões (infix-postfix)
2.2 – Árvores de Pesquisa
2.2.1 – Conceitos Básicos
2.2.2 – Árvores AVL
2.2.3 – Árvores Red-Black
2.2.4 – Árvores AA
2.2.5 – Árvores de aridade superior – B-Trees 3- Tabelas de Hash
3.1 – Conceitos Básicos
3.2 – Pesquisa linear e quadrática
3.3 – Encadeamento separado 4- Estruturas Avançadas
4.1 – Heap binária
4.2 – Splay Tree
4.3 – Conjunto Disjunto
Nas aulas Laboratoriais irão ser implementados, aplicados e testados os algoritmos e estruturas abordados nas aulas teóricas, sendo utilizada a linguagem JAVA.
Docente(s) responsável(eis)
Estágio(s)
NAO