Algoritmos e Estruturas de Dados
A disciplina explora o conhecimento e aplicação de Algoritmos e Estrutura de dados para solução de problemas computacionais. O curso é ministrado pela professora Kátia Guimarães e se destaca no segundo período pois requer que o aluno tenha um certo domínio das técnicas de programação e que saiba pensar de forma criativa para solucionar os problemas algorítmicos. A avaliação consiste em duas provas (em alguns anos são aplicadas duas mini-provas no semestre) e de quatro listas. As listas consistem de problemas que os alunos devem solucionar individualmente e são corrigidas de forma automática por um servidor, onde as notas são dadas de acordo com a porcentagem de linhas corretas que a solução gerou para o problema.
As Recomendações para os alunos que estão pagando tal cadeira é tentar fazer as listas com antecedência já que existem bônus para os que entregam as respostas da lista em tempo menor que o estipulado. Para resolver os problemas da lista o aluno deve ter conhecimentos sólidos em programação e nas linguagens Java ou C/C++.
Você pode acessar o site da disciplina aqui.
Professores
Kátia Guimarães e Paulo Fonseca
Objetivos
O curso visa criar no aluno a capacidade de resolver e compreender problemas algorítmicos, tanto na solução quanto nas questões de eficiência de uso dos recursos computacionais (Tempo e Espaço de Memória). Também é discutido sobre tópicos em complexidade dos algoritmos e sobre estruturas básicas de dados. Em particular, pretende-se alcançar os seguintes objetivos:
- Saber como usar de estrutura de dados para solução de problemas
- Discutir e avaliar a complexidade dos algoritmos
- Ter conhecimento dos algoritmos e do contexto que eles podem ser utilizados.
- Compreender as diferentes classes de algoritmos, estudados na teoria da complexidade computacional.
Tópicos Abordados
- Algoritmos: Ordenação,Busca em Grafos, Busca Binária, Dijkstra, Programação Dinâmica