Estruturas de Dados

Base Knowledge

It is expected that students have achieved the Programming Fundamentals proposed goals.

Teaching Methodologies

The teaching methodology is based on the presentation of the main concepts through examples and the realization of worksheets, by the students, to apply the those concepts.

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;
  • to 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

Evaluation
  • - Theoretical-practical part with the completion of an exam or two written tests and a practical part with the completion of a final work. - 100.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.