CHECKPOINT3¶
O Checkpoint 3 é baseado em um mini-projeto em grupo
, com objetivo de reforçar os conceitos adquiridos dos conteúdos ensinados, na prática.
Datas e Formatos:¶
A solução será apresentada em sala de aula, e cada grupo terá um tempo determinado para demonstrar o funcionamento do projeto, explicar o código e responder a quaisquer perguntas. É importante estar bem preparado para esta apresentação, assegurando que todos os membros do grupo conheçam bem o projeto e estejam aptos a participar da discussão.
Data | CheckPoint |
---|---|
01/11 | CheckPoint 3 - Apresentação do mini-projeto. |
Propostas de projetos¶
Os mini-projetos estão categorizados em 2 grandes áreas:
Sistemas de Gestão¶
Sistema de Reservas para Eventos¶
Objetivo: Criar um programa para gerenciar reservas de ingressos para eventos.
Funcionalidades: - Adicionar eventos - Comprar ingressos - Cancelar reservas - Listar eventos disponíveis - Mostrar informações sobre eventos
Estruturas de Dados: Dicionários para armazenar eventos e listas para armazenar reservas.
Gerenciador de Finanças Pessoais¶
Objetivo: Criar um programa para ajudar os usuários a gerenciar suas finanças pessoais.
Funcionalidades: - Adicionar transações (receitas e despesas) - Visualizar o saldo atual - Gerar um relatório de transações - Categorizar transações
Estruturas de Dados: Utilize listas para armazenar as transações, onde cada transação é um dicionário contendo tipo (receita ou despesa), valor, categoria, e data. Dicionários podem ser usados para categorizar as transações e calcular totais por categoria.
Jogos e Entretenimento¶
Jogo Pedra, Papel ou Tesoura¶
Objetivo: Criar um jogo simples de pedra, papel ou tesoura contra o computador.
Funcionalidades: - Escolha do usuário - Escolha aleatória do computador - Determinar o vencedor - Manter uma contagem de vitórias/derrotas
Estruturas de Dados: Variáveis para armazenar escolhas e contadores para vitórias/derrotas.
Jogo da Velha¶
Objetivo: Desenvolver uma versão simples do jogo da velha para dois jogadores.
Funcionalidades: - Exibir o tabuleiro - Fazer uma jogada - Verificar se há um vencedor - Alternar entre os jogadores
Estruturas de Dados: Utilize uma lista de listas para representar o tabuleiro, onde cada sub-lista representa uma linha do tabuleiro e cada elemento é uma célula. Inicialize o tabuleiro com valores vazios e atualize à medida que os jogadores fazem suas jogadas.
Outras propostas¶
- [outra opção] O grupo tem a liberdade de propor um tema diferente dos listados anteriormente. Converse com o professor para alinhar as funcionalidades e a estrutura de dados, para garantir nível de dificuldade od projeto.
Critérios de Avaliação¶
1. Uso de Estruturas de Dados (20 pontos)¶
- Iniciante (0-5 pontos): Uso limitado e incorreto de estruturas de dados.
- Intermediário (6-10 pontos): Uso básico de listas e dicionários.
- Avançado (11-15 pontos): Uso eficiente de listas, dicionários e outras estruturas de dados. Estruturas de dados são utilizadas de forma apropriada para resolver o problema.
- Excelente (16-20 pontos): Demonstração excepcional de conhecimento e habilidade no uso de estruturas de dados, incluindo a criação de classes personalizadas quando necessário.
2. Funções e Modularização (20 pontos)¶
- Iniciante (0-5 pontos): Uso limitado de funções, código repetitivo.
- Intermediário (6-10 pontos): Funções são utilizadas, mas ainda há repetição de código ou as funções são muito longas.
- Avançado (11-15 pontos): Funções são bem definidas, modularizadas e reutilizáveis.
- Excelente (16-20 pontos): Código extremamente bem organizado, funções são curtas, focadas e reutilizáveis em diferentes partes do programa.
3. Manipulação de Arquivos (20 pontos)¶
- Iniciante (0-5 pontos): Erros frequentes ao ler/escrever em arquivos ou não implementa esta funcionalidade.
- Intermediário (6-10 pontos): Consegue ler e escrever em arquivos, mas pode haver problemas de gerenciamento de arquivos (por exemplo, não fechar um arquivo).
- Avançado (11-15 pontos): Manipulação correta de arquivos, incluindo leitura, escrita e fechamento adequado de arquivos.
- Excelente (16-20 pontos): Uso avançado de manipulação de arquivos, incluindo tratamento de exceções e garantia de que os arquivos são sempre fechados corretamente, mesmo em caso de erro.
4. Controle de Fluxo e Estruturas de Decisão (20 pontos)¶
- Iniciante (0-5 pontos): Uso limitado e incorreto de estruturas de decisão.
- Intermediário (6-10 pontos): Uso básico de estruturas de decisão, mas o código pode ser difícil de seguir.
- Avançado (11-15 pontos): Estruturas de decisão são utilizadas eficientemente para controlar o fluxo do programa.
- Excelente (16-20 pontos): Uso excepcional de estruturas de decisão, tornando o código limpo, fácil de seguir e eficiente.
5. Tratamento de Erros e Validação de Dados (20 pontos)¶
- Iniciante (0-5 pontos): Erros frequentes, sem validação de dados ou tratamento de erros.
- Intermediário (6-10 pontos): Alguma validação de dados e tratamento de erros, mas não é abrangente.
- Avançado (11-15 pontos): Boa validação de dados e tratamento de erros, cobrindo a maioria dos casos de uso.
- Excelente (16-20 pontos): Excelente validação de dados e tratamento de erros, proporcionando uma experiência de usuário robusta e sem falhas.
Contato e Suporte¶
Não existem perguntas ruins, caso tenham dúvidas sobre o projeto, não hesitem em perguntar tanto em aula como fora de aula. O objetivo é que que você tenha uma experiência de aprendizado positiva, produtiva e divertida!
Checklist de Submissão¶
O projeto deve ser submetido em um repositório github que o grupo irá criar. Aguns pontos relevantes para garantir que todos os requisitos foram atendidos:
- Código Fonte: Todo o código fonte está bem comentado e formatado de acordo com as boas práticas de programação?
- Funcionalidades: Todas as funcionalidades requisitadas foram implementadas e estão funcionando corretamente?
- Estruturas de Dados: As estruturas de dados escolhidas são adequadas para as tarefas propostas?
- Testes: O código foi testado e é funcional?
- Apresentação: O grupo está preparado para a apresentação, com todos os membros conhecendo bem o projeto e aptos a responder perguntas?
- Documentação: A documentação do projeto está completa?