Programação II

Conhecimentos de Base Recomendados

Espera-se que os alunos tenham atingido os objetivos propostos em Programação I.

Métodos de Ensino

A unidade curricular não tem componente letiva.

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)

Métodos de Avaliação

Avaliação por Exame
  • - Trabalho - 25.0%
  • - Prova escrita - 75.0%
Avaliação Periódica
  • - Fichas e participação nas aulas - 25.0%
  • - Provas escritas - 50.0%
  • - Trabalho prático - 25.0%

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.