Método de Avaliação do Projecto

A avaliação relativa à componente do Projecto processa-se em várias fases:

  1. Entrega intermédia
  2. Entrega final (obrigatória)
  3. 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.
Não 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.
Para esta entrega, deve ser preparado um relatório (a entreguar via CVS), com um máximo de duas páginas de texto simples sem formatação e chamado rel1.txt (serão sumariamente ignorados relatórios noutros formatos). Não devem ser incluídas descrições de nenhum material fornecido pelo corpo docente.

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, deve ser preparado um relatório (a entreguar via CVS), com um máximo de duas páginas de texto simples sem formatação e chamado rel2.txt (serão sumariamente ignorados relatórios noutros formatos). 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 compilador deve chamar-se at e não "AT", "proj", "compiladores", "projecto", ou outro nome (a makefile fornecida já faz este trabalho). 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, 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 indicada no manual de referência 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.

Compromisso de Honra

A entrega de qualquer trabalho pressupõe o compromisso de honra que o trabalho correspondente foi realizado pelos alunos referenciados no grupo. A quebra deste compromisso, i.e., a tentativa de um grupo se apropriar de trabalho realizado por colegas, tem como consequência a reprovação de todos os alunos envolvidos (incluindo os que possibilitaram a ocorrência) neste ano lectivo.