Método de Avaliação do Projecto
A avaliação relativa à componente do Projecto processa-se em várias fases:
- Entrega intermédia
- Entrega final (obrigatória)
- Teste prático (obrigatório)
O
Projecto (trabalho conducente às entregas intermédia e final) é realizado por grupos de exactamente 2 (dois) elementos, durante o período estabelecido. A inscrição do grupo é feita no agrupamento
Projecto.
O
Teste Prático é realizado individualmente, em data e local a agendar.
A
Entrega Intermédia avalia o estado do projecto relativamente a um mínimo de funcionalidade.
Esta entrega tem uma classificação máxima de 6 valores.
Serão executados testes automáticos nesta entrega.
Os pormenores dos parâmetros de avaliação desta entrega serão anunciados em data próxima da entrega.
A
Entrega Final pressupõe que todo o projecto foi implementado.
Esta entrega tem uma classificação máxima de 14 valores.
Serão executados testes automáticos nesta entrega.
Os testes correspondem a uma série de programas que deverão ser compilados pelo resultado do projecto de cada grupo e cuja execução deve corresponder a um conjunto de resultados padrão. Para esta entrega, cada grupo deve produzir um relatório com um máximo de quatro páginas de texto simples sem formatação e chamado
relatorio.txt (serão sumariamente ignorados relatórios noutros formatos). O relatório é entregue via CVS e deve descrever as estruturas de dados utilizadas quanto à sua funcionalidade. Não devem ser incluídas descrições de nenhum material fornecido pelo corpo docente.
A não realização da Entrega Final conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto.
O
Teste Prático consiste num conjunto de questões (correspondentes a pequenas alterações/extensões ao enunciado) a resolver com base na implementação submetida para a avaliação correspondente à entrega final. Este teste avalia o conhecimento do aluno relativamente ao projecto entregue, assim como a sua capacidade de realizar alterações ao código do projecto.
A não realização do Teste Prático conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto.
Considerações Adicionais sobre a Avaliação do Projecto
O projecto deverá ser desenvolvido ao longo do semestre. As versões intermédias registadas no CVS poderão ser testadas, pelo que deverão ser periodicamente actualizadas. O projecto é constituído por um projecto CVS designado pelo número do grupo que o executa. O repositório CVS disponibilizado já contém uma versão vazia do projecto. Apenas os ficheiros registados no projecto CVS serão considerados na avaliação. Na data limite para a conclusão do projecto deverá existir um relatório (nas condições indicadas acima), também sob o controlo do CVS.
Não serão consideradas quaisquer alterações aos ficheiros disponibilizados: eventuais cópias desses ficheiros serão automaticamente substituídas durante a avaliação da funcionalidade do código submetido.
A avaliação executa testes automáticos aos programas na linguagem a implementar: caso os testes falhem por causas imputáveis ao grupo, a nota reflectirá apenas os testes bem sucedidos. Para tal, o projecto deve chamar-se
pipoca e não "PIPOCA", "proj", "compiladores", "projecto", ou outro nome. As restantes componentes da nota são obtidas pela análise do código, relatório (opções tomadas) e resultado do teste prático (realizado individualmente). O código é avaliado quanto à sua correcção, simplicidade, extensibilidade e legibilidade: devem existir comentários das partes mais complexas do programa, mas não devem ser excessivos nem óbvios (diminuem a legibilidade), nem muito escassos (impedem a compreensão). O teste prático avalia a capacidade de efectuar alterações ao código entregue.
Qualquer alteração à especificação da linguagem é penalizada, mesmo que possa ser entendida como um melhoramento. Pretende-se realizar um compilador para a linguagem Pipoca e não que cada grupo invente uma nova linguagem, mesmo que baseada na especificação fornecida.
Notar que o facto de os testes automáticos terem sido superados não reflecte a qualidade do código, quer do ponto de vista de engenharia de software, quer do ponto de vista da correcta aplicação dos princípios leccionados na disciplina. A funcionalidade do compilador final é de extrema importância, pelo que é preferível um compilador que realize, correctamente, apenas parte da funcionalidade a um quase completo mas que nem sequer compila ou que não gera nenhum programa correcto.