Computation II


Teaching the basis of algorithms, the main concepts of algorithm complexity, the main searching and sorting algorithms, and the most known dynamic data structures.

General characterization





Responsible teacher

Leonardo Vanneschi


Weekly - Available soon

Total - Available soon

Teaching language

Portuguese. If there are Erasmus students, classes will be taught in English


  • Computer programming skills
  • Basic knowledge in discrete mathematics


Absolute Java, Walter J. Savitch, Addison Wesley; 0; 0; 0; 0

Teaching method

  • Theoretical class where the professor will present the formal methods needed to analyze and build efficient algorithms.
  • Practical classes where students will have the opportunity to test the performance of different algorithms for solving a set of tasks.

Evaluation method

Both in the first and in the second examination epoch, the final grade is a weighted average between exam and project

Subject matter

Basic strategies of algorithm design: top-down design, divide and conquer, average and worst-case criteria, asymptotic costs.

Simple recurrence relations for asymptotic costs.

Choice of appropriate data structures: arrays, lists, stacks, queues, trees, heaps, priority queues,trees.

Applications to sorting and searching.


Programs where the course is taught: