Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
480 - Informática
Departamento / Department
Departamento de Tecnologias Digitais
Ano letivo / Execution Year
2022/2023
Pré-requisitos / Pre-Requisites
Esta unidade curricular não tem pré-requisitos
Objetivos Gerais / Objectives
A UC de Algoritmos e Estruturas de Dados tem como principal objetivo dotar os alunos com conhecimentos aprofundados de técnicas de concepção e desenvolvimento de algoritmos e estruturas de dados, e introduzir a análise da complexidade e do desempenho dos algoritmos. São apresentados algoritmos de pesquisa e ordenação, baseados em estruturas de dados elementares, lineares ou hierárquicas, concebidas para suportar operações eficientes e viáveis do ponto de vista computacional.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
No final da UC os alunos deverão ser capazes de: OA1: Criar e manipular estruturas de dados OA2: Aplicar os algoritmos de ordenação e de pesquisa mais apropriados para um determinado problema OA3: Analisar a complexidade e o desempenho de um algoritmo OA4. Identificar, implementar e analisar as estruturas de dados e os algoritmos mais adequados a um determinado problema
Conteúdos Programáticos / Syllabus
CP1. A estrutura de dados Union-Find CP2. Análise de algoritmos CP3: Estruturas de dados: pilhas, filas, listas, sacos CP4: Ordenação elementar: selectionsort, insertionsort, shellsort CP5: Ordenação avançada: mergesort, quicksort, heapsort CP6. Complexidade dos problemas de ordenação CP7: Filas com prioridade CP8. Tabelas de símbolos elementares CP9. Árvores de pesquisa binária CP10. Árvores de pesquisa equilibradas CP11. Tabelas de dispersão
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
O alinhamento dos conteúdos programáticos (CP) com os objetivos de aprendizagem (OA) é o seguinte: OA1 - CP1, CP3, CP7, CP8, CP9, CP10, CP11 OA2 - CP4, CP5, CP6 OA3 - CP2, CP6 OA4 - CP1, CP2, CP3, CP4, CP5, CP6, CP7, CP8, CP9, CP10, CP11
Avaliação / Assessment
Época 1: Avaliação Periódica ou Exame Final Avaliação Periódica: -2 Testes (90%), com componente teórica e prática. Média final mínima de 9,5, distribuído da seguinte forma: (45%) Teste 1 com nota mínima 7,5 e (45%) Teste 2 com nota mínima 7,5 -(10%) Tarefas de aplicação e demonstração de conhecimentos Avaliação por Exame: - (100%) Exame Final com componente teórica e prática Os estudantes têm acesso à avaliação por Exame na Época 1 se a escolherem no início do semestre ou se reprovarem na Avaliação Periódica. Época 2: Exame Final - (100%) Exame Final com componente teórica e prática Época Especial: Exame Final - (100%) Exame Final com componente teórica e prática
Metodologias de Ensino / Teaching methodologies
A Unidade Curricular segue metodologias ativas de aprendizagem, com ênfase em aprendizagem por problemas e aprendizagem por tarefas.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
Aprendizagem baseada em problemas: OA2, OA4 Apredizagem baseada tarefas: OA1, OA2, OA3, OA4
Observações / Observations
-
Bibliografia Principal / Main Bibliography
Para as licenciaturas Python: Python - Algoritmia e Programação Web, FCA, Para as licenciaturas Java: Estruturas de Dados e Algoritmos em Java, FCA Introduction to Algorithms, 3rd edition, MIT Press, Algorithms, 4th edition, Addison-Wesley, 2012
Bibliografia Secundária / Secondary Bibliography
Data da última atualização / Last Update Date
2024-02-16