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 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
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