The aim of the course is to provide students with the fundamental skills needed to develop algorithms using over graph-based data structures and analyze their correctness and efficiency, so that they will be able to:
- Design programs that use computer resources efficiently,
- Realize that there are problems that are impractical or even impossible to solve by a computer.
The course is devoted to identify clean algorithmic problem formulations in complex issues from different areas of computing and, from this, how to design efficient algorithms for the resulting problems.