O objetivo desta Unidade Curricular é introduzir os conceitos fundamentais de algoritmos e estruturas básicas de dados, a fim de resolver problemas complexos de uma forma eficiente. O aluno deve ser capaz de avaliar a eficiência de um algoritmo sem a necessidade de implementá-lo ou testá-lo. Também deve ser capaz de aplicar a estrutura de dados mais eficiente para resolver um determinado problema. Esta Unidade Curricular cobre a teoria moderna de algoritmos, concentrando-se nos algoritmos eficientes e problemas intratáveis. Além de introduzir a linguagem básica e as ferramentas para análise de algoritmos, a Unidade Curricular cobrirá vários problemas específicos e paradigmas gerais de projeto.
No final do semestre, os estudantes devem:
- Estar familiarizados com as técnicas de design de algoritmo padrão.
- Ser capaz de aplicar algoritmos a problemas de bioinformática.
- Ser capaz de analisar um algoritmo.
- Conhecer algumas estruturas de dados padrão usadas em bioinformática.