Sejam muito bem-vindos a todas e a todos ao Hackathon Ada Lovelace
A competição
Ada Lovelace POOtathon POOmpetition POOdyssey
é uma maratona de programação voltada para alunos da disciplina de Programação Orientada a Objetos (POO). Inspirada na pioneira da programação, Ada Lovelace, a competição visa estimular a criatividade, a aplicação prática dos conceitos de POO e o desenvolvimento de projetos inovadores em Java. Os alunos trabalharão individualmente para criar um projeto completo, que será avaliado e apresentado ao final da competição.
O tema do projeto é aberto, permitindo que os alunos escolham áreas de interesse como finanças, games, educação, saúde, entre outras. No entanto, há algumas restrições importantes a serem observadas:
- Restrições Técnicas: O projeto não pode envolver desenvolvimento para a web, manipulação de threads, leitura/escrita de arquivos, ou o uso de bibliotecas e frameworks customizados.
- Tecnologias Permitidas: Os projetos devem utilizar apenas os conceitos de Programação Orientada a Objetos que foram trabalhados em sala de aula, como classes, objetos, herança, polimorfismo, interfaces, entre outros.
- Casos de Testes: O uso de JUnit para a criação de testes unitários é permitido e recomendado, mas não obrigatório.
Essa abordagem visa garantir que os alunos foquem na aplicação dos conceitos fundamentais de POO, sem se preocuparem com frameworks ou tecnologias externas. Escolha um tema que você se sinta confortável em desenvolver, mas que também desafie sua criatividade e habilidade em POO.
- Este tema é voltado para os que não definiram ou enviaram o seu projeto no prazo.
- Importante lembrar que, uma vez definido o tema do projeto, não poderá modificar ao longo da competição.
- Uma mini corretora para câmbio de moedas e pagamentos com funcionalidades simples e minificadas.
- Para mais informações, entre em contato com o professor. Havendo maior interesse, farei uma página para tal.
Qualidade do Código
: O código deve ser bem estruturado, seguindo as melhores práticas de POO e Java. Isso inclui o uso adequado de classes, objetos, herança, encapsulamento, polimorfismo e interfaces.Correção
: O projeto deve funcionar corretamente, sem bugs aparentes, e cumprir todos os requisitos estabelecidos.Organização e Legibilidade
: O código deve ser organizado e legível, com nomes de variáveis, métodos e classes que sigam convenções e facilitam o entendimento. Comentários podem ser usados para explicar partes mais complexas do código.Algoritmos IA
: Não há problemas se uma parte do seu projeto teve suporte da IA. Mas saiba que o seu projeto passará por uma blitz. Você será avaliado e apresentará o seu projeto explicando o código-fonte. Lembre-se que, o seu projeto fala sobre você, então, seja natural e verdadeiro.
- Clareza: O README deve ser claro, conciso e bem organizado, contendo informações essenciais sobre o projeto.
- Instruções de Uso: Devem ser fornecidas instruções detalhadas para executar o projeto, incluindo dependências e comandos necessários.
- Documentação: O README deve incluir uma explicação sobre o design do projeto, as decisões de POO tomadas e como cada componente se integra no todo.
- Projeto: Explique qual o problema que o seu projeto resolve, como ele resolve e porque a sua solução é tem melhor valor diante de tantas outras. Você pode criar diagramas para ilustrar o problema e solução.
- Clareza e Objetividade: Os alunos terão 07 minutos para apresentar seus projetos, devendo ser claros e objetivos na comunicação das ideias principais. Haverá ainda alguns minutos, no máximo 03, para perguntas, que podem ser do professor, participantes externos ou próprios alunos contribuindo.
- Demonstração: A apresentação deve incluir uma demonstração funcional do projeto, mostrando suas principais funcionalidades. Sugestão para reservar 3min para mostrar o projeto funcionando e o restante mostrar o código, sobre como foi implementado. Responder ao final qual foi o maior desafio e aprendizado.
- Domínio do Conteúdo: O aluno deve demonstrar conhecimento sobre o projeto e as tecnologias utilizadas, respondendo a perguntas de maneira confiante e fundamentada.
- Uso de Bibliotecas Externas: Apenas bibliotecas padrão do Java podem ser utilizadas, a menos que explicitamente permitido. Então, caso precisar, considere entrar em contato com o professor antes.
- Plágio: O código deve ser original e desenvolvido exclusivamente para esta competição. Qualquer indício de plágio, de outro colega ou até mesmo da IA resultará em desclassificação.
- Tempo: O projeto deve ser concluído dentro do prazo estipulado. Atrasos na entrega resultam em penalidades na pontuação final.
02/09
→ Tema do Projeto11/09
→ Envio do Projeto- Até as
16:00
. Submissões fora do prazo serão penalizadas. - Haverá um formulário para envio do projeto no github.
- Até as
- Importante: Cada entrega devem ser realizadas até a data e horários estipulados pelo professor.
- Trabalho Individual: A competição é individual, e cada aluno deve desenvolver seu próprio projeto.
- Discussões: Discussões sobre conceitos e técnicas são permitidas, mas a implementação do código deve ser feita individualmente.
- Melhor Apresentação
- Melhor README
- Melhor Design Visual Console
- Melhor Design Arquitetural
- Melhor Design Código Testes
- Melhor Design Código POO
- Melhor Projeto
Design de Classes de Domínio
→ Mínimo de 5 (classes de modelo)Separação em Camadas
→ Ao menos Repositório + Serviço (Opcional Controller + View)Transição de Estados
→ Ao menos uma mudança (Exemplo, status do pedido cancelado)Princípios SOLID
→ Ao menos 2 implementadosTestes
→ Opcional
Melhor Apresentação
→ JonathanMelhor README
→ IgorMelhor Design Visual Console
→ Juliana / Fernando / LucasMelhor Design Arquitetural
→ Fernando LopesMelhor Design Código Testes
→ IndefinidoMelhor Design Código POO
→ NeroMelhor Design Código POO Coadjuvante
→ LucasMelhor Projeto
→ Juliana
- Os alunos não indicados abaixo não enviaram o projeto ou nenhuma atividade
Arthur
Fernando Lopes
Fernando Grossi
Igor
Jeferson
Jonathan
Juliana
Karoline
Lucas
Nero
Rogerio
Ilana
Juan