Schedule II

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

Avaliação por Exame
  • - Trabalho - 25.0%
  • - Prova escrita - 75.0%
Avaliação Periódica
  • - 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.