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)
Métodos de Avaliação
- - Parte teórico-prática com a realização de um exame ou duas provas escritas e uma parte prática com a realização de um trabalho final. - 100.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.