Código |
16671
|
Ano |
1
|
Semestre |
S2
|
Créditos ECTS |
6
|
Carga Horária |
PL(30H)/T(30H)
|
Área Científica |
Informática
|
Objectivos de Aprendizagem |
Os objetivos desta UC focam-se em proporcionar aos estudantes técnicas de análise de complexidade algoritmica, diferentes estruturas de dados complexas e um conjunto de algoritmos para resolução de problemas computacionais.
No final desta unidade curricular o estudante deve ser capaz de: - Explicar a utilidade e complexidade de diferentes estruturas de dados, assim como ser capaz de combinar diferentes estruturas de dados para resolução de problemas. - Analisar a complexidade computacional (temporal e espacial) de um dado algoritmo. - Implementar diferentes algoritmos e e estruturas de dados para resolução de problemas complexos.
|
Conteúdos programáticos |
1 - Recursividade 2 - Análise de complexidade temporal e espacial 3- Algoritmos de ordenação 4 - Estruturas de dados: - Vetores - Vetores dinâmicos - Listas, listas duplamente ligadas e variantes - Filas, pilhas e suas variantes (prioridade, de dupla entrada) - Árvores - Representação computacional de grafos 5 - Algoritmos de pesquisa 6 - Problemas sobre árvores e grafos
|
Metodologias de Ensino e Critérios de Avaliação |
A UC contempla 2 horas de aulas teóricas e 2 horas de aulas práticas laboratoriais por semana. Nas aulas teóricas são apresentados diferentes tópicos do programa da UC, assim como resolução de problemas relacionados com o tema em estudo. Nas aulas práticas são apresentados problemas para os estudantes resolverem. Estes problemas podem necessitar da utilização da linguagem python para a sua resolução.
Prova de avaliação de conhecimentos (10 valores - 50%) - 1 testes ou o exame Três (3) trabalhos prático (2+3+5 valores - 50%).
|
Bibliografia principal |
Slides das aulas teóricas. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms (Fourth Edition), The MIT Press, 2022. Brad Miller and David Ranum. Problem Solving with Algorithms and Data Structures using Python, Luther College, 2006.
|
Língua |
Português
|