Teaching the basis of algorithms, the main concepts of algorithm complexity, the main searching and sorting algorithms, and the most known dynamic data structures.
Weekly - Available soon
Total - Available soon
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
- 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.
Both in the first and in the second examination epoch, the final grade is a weighted average between exam and project
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: