Computation II

Objectives

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

Code

100027

Credits

6.0

Responsible teacher

Leonardo Vanneschi

Hours

Weekly - Available soon

Total - Available soon

Teaching language

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

Prerequisites

  • Computer programming skills
  • Basic knowledge in discrete mathematics

Bibliography

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

Programs where the course is taught: