Trabalhos Práticos
A disciplina conta com dois trabalhos práticos de caráter integrador, totalizando 14 pontos. O objetivo destes trabalhos é aplicar os conhecimentos de estruturas de dados avançadas em problemas mais complexos do que os exercícios de maratona convencionais.
Regras Gerais
- Grupos: Os trabalhos provavelmente serão individuais.
- Linguagem: Preferencialmente Java mas não deve ser algo obrigatório.
- Entrega: Via repositório Git, ou submissão no maratona online + Apresentação (Defesa).
- Integridade: Plágio ou uso não documentado de IA resultará em nota zero.
TP 1: Estruturas Hierárquicas (Árvores)
Valor: 7 Pontos
Data Prevista: 07 de Abril
Escopo
Desenvolvimento de uma aplicação que tire proveito eficiente de estruturas de árvores balanceadas ou indexação. Exemplos de temas: - Implementação comparativa de AVL vs Rubro-Negra. - Sistema de autocompletar eficiente usando Tries. - Indexador de arquivos texto usando Árvores B.
TP 2: Otimização em Grafos
Valor: 7 Pontos
Data Prevista: 12 de Junho
Escopo
Resolução de um problema de otimização combinatória modelado como grafo. Exemplos de temas: - Sistema de recomendação de rotas (Dijkstra/A*). - Análise de redes sociais (Centralidade, Comunidades). - Alocação de recursos usando Fluxo Máximo. - Resolver um problema “Hard” de maratona (ex: Caixeiro Viajante) com heurísticas.
Critérios de Avaliação
| Critério | Peso |
|---|---|
| Corretude (Funciona?) | 40% |
| Eficiência (É rápido/otimizado?) | 30% |
| Código (Boas práticas, modularização) | 15% |
| Documentação/Apresentação | 15% |