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

Celia Teresa Ligeiro Mendes Pereira

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.