Currículo
Estruturas de Dados e Algoritmos 03587
Contextos
Groupo: Ciência de Dados - 2025 > 1º Ciclo > Unidades Curriculares Obrigatórias
ECTS
6.0 (para cálculo da média)
Objectivos
No final da UC os alunos deverão ser capazes de: OA1. Identificar, reescrever e examinar formas comuns de organização de dados e algoritmos associados; OA2: Identificar a estrutura de dados mais apropriada e eficiente para um determinado problema; OA3: Saber avaliar e comparar a ordem de desempenho e eficiência de uma dada estrutura de dados e/ou algoritmo para as operações de inserção, remoção e acesso; OA4: Perceber as vantagens e desvantagens de algoritmos recursivos, iterativos e técnicas de programação dinâmica; OA5. Compreender diferentes algoritmos de pesquisa e ordenação apropriados a soluções computacionais.
Programa
CP1: Estruturas de Dados e Algoritmos: o que são e por que são importantes. Tipos Abstratos de Dados. CP2: Estruturas de dados lineares: pilhas, filas, filas de dupla entrada, listas e listas ligadas. CP3: Introdução à análise da complexidade (eficiência) de algoritmos. CP4: Algoritmos de pesquisa: linear e binária. CP5: Recursão, backtracking, iteração e programação dinâmica. CP6: Algoritmos de ordenação iterativos: Bubblesort, Selectionsort e Insertionsort. CP7. Algoritmos de ordenação recursivos: Mergesort e Quicksort. CP8: Estruturas de dados não lineares: árvores, árvores de pesquisa binária, árvores AVL e grafos. CP9: Algoritmos simples sobre estruturas de dados não lineares.
Método de Avaliação
Está aprovada pela Comissão Pedagógica da ISTA que a avaliação de EDA é feita apenas por avaliação ao longo do semestre (ver Observações 1). Não é, portanto, possível fazer a avaliação de EDA com um exame com valor de 100%. Critérios mínimos de assiduidade: 75% das 12 semanas x 3h de aulas. Elementos de avaliação e respetivas ponderações na nota final: - teste escrito individual -> 60%, nota mínima de 7,5 valores, previsto realizar na aula pós-laboral da última semana de aulas; - trabalho 1, individual, com teste oral -> 15%; - trabalho 2, individual ou em grupos de 2 elementos (a decidir), com teste oral individual -> 25%, nota mínima de 7,5 valores. A classificação final é obtida com a média ponderada: Nota_final = 60% x Nota_teste + 15% x Nota_trabalho1 + 25% x Nota_trabalho2. As classificações dos 3 elementos de avaliação são usadas na fórmula sem arredondamento à unidade. Para obter aprovação na UC a Nota_final tem que ser maior ou igual a 10 valores. Os alunos devem conhecer o Regulamento disciplinar de discentes (ver Observações 2) e cumprir os seus deveres gerais, conforme descrito no nº 2 do Artigo 2º desse regulamento (ver Observações 2). Os alunos com estatuto especial conferido pelos Serviços de Gestão do Ensino (contatar estes Serviços, pois os docentes não têm competência para conceder estes estatutos) podem ter acesso à época especial (ver Observações 3). Em Época Especial, os elementos de avaliação e respetivas ponderações na nota final são: - teste escrito individual -> 60%, nota mínima de 7,5 valores; - dois trabalhos individuais, com teste oral individual -> 15% + 25%, nota mínima de 7,5 valores em cada um dos trabalhos. A classificação final em época especial é obtida do mesmo modo que em época normal (avaliação ao longo do semestre).
Carga Horária
Carga Horária de Contacto -
Trabalho Autónomo - 113.0
Carga Total -
Bibliografia
Principal
- - J. Wengrow, A Common-Sense Guide to Data Structures and Algorithms in Python, Volumes 1 and 2,. The Pragmatic Bookshelf, 2024. - M. Goodrich, R. Tamassia, and M. Goldwasser, Data Structures & Algorithms in Python. Wiley, 2013.:
Secundária
- - B. Miller and D. Ranum, Problem Solving with Algorithms and Data Structures using Python, Second Edition, Release 3.0. 2013. - T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Introduction to Algorithms, Fourth Edition. MIT Press, 2022. - Referências adicionais a indicar durante as aulas.: