Projeto Integrado - Turma S73 - 2011.2
Tabela de conteúdo |
O que é o Projeto Integrado do Primeiro Período do Bacharelado em Sistemas de Informação?
Leia Projeto Integrado do Primeiro Período do Bacharelado em Sistemas de Informação.
Equipe de Professores diretamente envolvidos
- Adolfo Neto (Lógica para Computação) - professor responsável pelo Projeto 1
- Mari (Algoritmos 1)
- Karla (Fundamentos 1)
- Bernardes (TGS)
- Regis (Comunicação Oral e Escrita)
Demais professores do primeiro período
- Keller (Tecnologia e Sociedade)
- Violeta (Cálculo 1)
Descrição do Projeto
- Implementar o jogo Pac-Man (ver também [1] e exemplo de implementação em [2] e [3]).
- A implementação poderá ser em modo texto ou usando alguma biblioteca gráfica como a Allegro.
Funcionalidades essenciais
- Funcionalidades básicas do PacMan
- Os alunos deverão estudar a implementação de referência do PacMan e implementar as principais funcionalidades do jogo, tais como:
- Deve haver um "ser", controlado pelo jogador, cujo objetivo é destruir seus "inimigos"
- Os inimigos devem ser no mínimo 4, com movimentos independentes.
- Devem haver vários "objetos" que podem ser "consumidos" pelo "ser", tais como, na implementação de referência: pontos, frutas, vitaminas, inimigos, etc.
- O "ser" deve ter um número inicial fixo de "vidas"
- ...
- Os alunos deverão estudar a implementação de referência do PacMan e implementar as principais funcionalidades do jogo, tais como:
- Controle de acesso e cadastro de jogadores
- Para jogar o jogo é necessário antes cadastrar-se, definindo um login e uma senha.
- Na tela inicial do sistema será solicitado o login e a senha do jogador. E haverá uma opção para permitir que quem ainda não se cadastrou se cadastre.
- O jogador poderá escolher seu login. O sistema deverá impedir que alguém se cadastre com o login de um outro jogador já cadastrado.
- Para jogar o jogo é necessário antes cadastrar-se, definindo um login e uma senha.
- Registro da pontuação de jogadores
- Cada vez que um jogo for finalizado, a pontuação do jogador naquele jogo deverá ser armazenada de forma persistente (isto é, num arquivo). Juntamente com a pontuação deve ser armazenado o dia, mês, ano, hora, minuto e segundo em que o jogador conseguiu a pontuação.
- Exibição de pontuação e recordes
- Um jogador poderá ver todas as suas pontuações (juntamente com a data em que foi obtida), ordenadas da maior para a menor.
- Um jogador poderá ver as 10 melhores pontuações considerando todos os jogadores (juntamente com o nome do jogador e a data em que foi obtida), ordenadas da maior para a menor. Em caso de empate no fim da lista podem ser exibidas mais de 10 pontuações.
Funcionalidades desejáveis
- A sigla 'UTFPR' deve aparecer em algum lugar do "tabuleiro". Uma ideia: os obstáculos do meio do "tabuleiro" formam a sigla 'UTFPR' (como o Google fez em sua versão do PacMan [4]).
- Demais funcionalidades desejáveis serão definidas pela própria equipe e aprovadas (ou não) pela equipe de professores do Projeto Integrado. Isto é, cada equipe fica responsável por sugerir itens adicionais ao projeto, para diferenciá-lo dos demais.
Regras
- Quantidade de membros na equipe: 3 ou 4.
- Observação: caso um ou dois integrantes da equipe desistam de uma ou mais disciplinas ao longo do semestre, a equipe poderá escolher entre permanecer a mesma ou fundir-se com outra equipe. O professor responsável pela gerência do projeto analisará cada caso.
- Todas as equipes deverão relatar semanalmente o andamento do projeto.
- Sugestão: criar um blog no posterous para isso.
Equipes
- Jonathan Felipe Medeiros, Gustavo Borges Follador, Rodrigo Augusto Toigo Homem, Rafael Antonio Lopez
- Beta Games Company: Raphael Jardim Lopes, Eduardo Quagliato, Rafaela Somavila Lima, Giulliano Menezes
- Guilherme R. Bastos, Bruno Roberto, Fernando Sencioles, Vanderlei Moreno
- Diego de Faria do Nascimento, Lcas de Melo Carvalho, Matheus Ernesto Silva Gonçalves, Paulo Matheus Peruzzo Storrer
- Fernando Carmo, Philip, Gyovann
- Renan Romeo, Neiton Arlindo Soares, Mauro Emerson Biscaia Filho, Guilherme Vinicius Kluppell
- Roberto S Borges, Lucas de Lara, Diego Sikora, Guilherme Marinasco
- Lucas Gabardo Silveira, Eduardo Carvalho Oliveira, Marcio Henrique Machado
- Tulio Martins Freitas, Vinicius Skotnicezny, Marco, Marlon M.
- Guilherme Lincon Barczyszyn, Max, Henrique Antunez
O que cada equipe precisa entregar?
- Software funcionando
- Documento descrevendo o software, contendo as seguintes seções:
- Introdução
- Diagramas de Fluxo de Dados (mais informações com o professor de TGS)
- Especificação Formal (mais informações com o professor de Lógica para Computação)
- Algoritmos Utilizados (mais informações com a professora de Algoritmos 1)
- Design e Implementação do Sistema (mais informações com a professora de Fundamentos de Programação 1)
- Conclusão
O documento deve seguir as normas para a elaboração de trabalhos acadêmicos da UTFPR.
De acordo com o que está na página 16 das normas, o documento deverá conter os seguintes elementos:
- Capa
- Folha de rosto
- Sumário
- Introdução
- Desenvolvimento (dividido em seções como visto acima)
- Conclusão
- Referências
Não é necessário Resumo, Abstract, Lista de Ilustrações, Lista de Tabelas, etc.
Instruções sobre como elaborar estes elementos e sobre como fazer citações (muito importante!) podem ser encontradas nas normas. A equipe da Biblioteca da UTFPR e o(a) professor(a) de Comunicação Oral e Escrita também podem ajudar quanto às questões de escrita do documento.
Avaliação
A cada item do documento/implementação será atribuído um peso. Em adição, a equipe que obtiver a melhor pontuação nas "funcionalidades desejáveis" obterá um acréscimo de 10% na nota.
Baseados nestes itens os professores estabelecerão uma nota.
A nota pode ser diferente por disciplina, por membro da equipe. Ex.: na equipe A, com os membros A1, A2 e A3, A1 pode tirar 10 em Algoritmos, 9 em Lógica e 8 em Fundamentos 1. Na mesma equipe, os membros A2 e A3 podem tirar 9 em Algoritmos, 8 em Lógica e 8 em Fundamentos 1.
Uma única nota será repassada ao professor de TGS.
Algumas métricas que também serão avaliadas:
- qualidade do código em geral
- quantidade de variáveis globais
- concordância com padrões de codificação (regras para nomear símbolos, por exemplo)
- qualidade e quantidade dos comentários
- adequabilidade das funções/métodos de API escolhidos
- grau de modularização:
- número de funções/métodos x linhas por função/método
- quantidade de funções/métodos chamadas mais de uma vez
Datas Importantes
- Até 16.09.2011: definição das equipes
- Até 26.09.2011: entrega de documento descrevendo o jogo PacMan.
- (A definir): Entrega dos Diagramas de Fluxo de Dados
- (A definir): Entrega do documento para o(a) professor(a) de Comunicação Oral e Escita, para revisão
- (A definir): Entrega do documento (via Moodle)
- (A definir): Entrega do código-fonte (via Moodle)
- (A definir): Bancas do projeto integrado