Base Knowledge
It is expected that students have achieved the Programming I proposed goals.
Teaching Methodologies
The course has no teaching component.
Learning Results
After attending this course, each student is expected to:
- know different structures to store and manipulate data in memory;
- distinguish static structures from dynamic structures;
- choose the most suitable data structure for each problem;
- develop and implement algorithms to manipulate different data structures, in C;
- implement iterative and recursive algorithms for problem solving;
- understand the concept of complexity and choose between two or more algorithms to solve the same problem considering the computational effort of each.
Program
Sorting and searching algorithms.
File manipulation using C.
Pointers.
Definition of structs and types.
Dynamic memory allocation.
Linked lists.
Recursion.
Tree structures.
Algorithm complexity analysis (time complexity, complexity order: best case, worst case, and average case).
Curricular Unit Teachers
Grading Methods
- - Trabalho - 25.0%
- - Prova escrita - 75.0%
- - Provas escritas - 50.0%
- - Trabalho prático - 25.0%
- - Fichas e participação nas aulas - 25.0%
Internship(s)
NAO
Bibliography
Damas, L. (2019). Linguagem C. (24th ed.). 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.