Estruturas de Dados

Conhecimentos de Base Recomendados

Espera-se que os alunos tenham atingido os objectivos propostos em Fundamentos de Programação.

Métodos de Ensino

A metodologia de ensino baseia-se na exposição dos principais conceitos através de exemplos e da realização de fichas de trabalho, pelos alunos, para aplicar os conceitos apresentados.

Resultados de Aprendizagem

Depois de frequentar esta unidade curricular espera-se que cada aluno:

  • conheça diferentes estruturas para guardar e manipular dados na memória;
  • distinga estruturas estáticas de estruturas dinâmicas;
  • escolha a estrutura de dados mais adequada para cada problema;
  • desenvolva e implemente algoritmos que permitam manipular diferentes estruturas de dados, em C;
  • implemente algoritmos iterativos e recursivos para resolver problemas;
  • compreenda a noção de complexidade e consiga escolher entre dois ou mais algoritmos para resolver o mesmo problema (tendo em conta o esforço computacional de cada um).

Programa

Algoritmos de ordenação e pesquisa

Manipulação de ficheiros em C

Ponteiros

Definição de estruturas e tipos

Alocação dinâmica de memória

Listas ligadas

Recursividade

Estruturas em árvore

Análise de complexidade de algoritmos (complexidade temporal, cálculo da ordem de complexidade de um algoritmo: melhor caso, pior caso e caso médio)

Docente(s) responsável(eis)

Célia Teresa Ligeiro Mendes Pereira

Métodos de Avaliação

Os alunos podem obter aprovação na unidade curricular em Avaliação Periódica ou Avaliação Por Exame.

A Avaliação Periódica consiste na realização de:

  • dois trabalhos práticos de grupo: 50% (cada trabalho vale 25% da nota final)
  • dois testes: 50% (cada teste vale 25% da nota final e tem como nota mínima 8 valores em 20)

A Avaliação por Exame consiste na realização de:

  • um trabalho prático: 50% da nota final
  • um exame: 50% (com nota mínima de 8 valores em 20)

    Estágio(s)

    NAO

    Bibliografia

    Damas, L. (2019). Linguagem C. (24ª edição). FCA.

    Rocha, A. (2014). Análise de complexidade de algoritmos. FCA.

    Rocha, A. (2014). Estruturas de dados e algoritmos em C. FCA.

    Szuhay, J. (2020). Learn C Programming: A beginner’s guide to learning C programming the easy and disciplined way. Packt publishing.

    Vasconcelos, J. & Carvalho, A. (2005). Algoritmia e estruturas de dados: Programação nas linguagens C e java. Edições Centro Atlântico.