(→Entrega Intermédia - Gerador de XML) |
|||
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{PRJHEADER}} |
− | |||
− | |||
{{TOCright}} | {{TOCright}} | ||
== Método de Avaliação do Projecto == | == Método de Avaliação do Projecto == | ||
Line 8: | Line 6: | ||
* [[#Entrega Zero (inicial) - Projecto Base|Entrega Zero (inicial): projecto base]] ('''obrigatória''': ver condições abaixo) | * [[#Entrega Zero (inicial) - Projecto Base|Entrega Zero (inicial): projecto base]] ('''obrigatória''': ver condições abaixo) | ||
− | * [[#Entrega Intermédia - Gerador de XML|Entrega Intermédia: gerador de XML]] | + | * [[#Entrega Intermédia - Gerador de XML|Entrega Intermédia: gerador de XML]] ('''obrigatória''': ver condições abaixo) |
* [[#Entrega Final - Compilador Completo|Entrega Final: compilador completo]] ('''obrigatória''': ver condições abaixo) | * [[#Entrega Final - Compilador Completo|Entrega Final: compilador completo]] ('''obrigatória''': ver condições abaixo) | ||
* [[#Teste Prático|Teste prático]] ('''obrigatório''': ver condições abaixo) | * [[#Teste Prático|Teste prático]] ('''obrigatório''': ver condições abaixo) | ||
− | O Projecto (trabalho conducente às entregas acima mencionadas e abaixo descritas) é realizado individualmente, durante o período estabelecido. | + | <!--O Projecto (trabalho conducente às entregas acima mencionadas e abaixo descritas) é realizado individualmente, durante o período estabelecido.--> |
− | + | O Projecto (trabalho conducente às entregas acima mencionadas e abaixo descritas) é realizado por grupos de, no máximo, 2 (dois) elementos, durante o período estabelecido. | |
O Teste Prático é realizado individualmente, em data e local a agendar. | O Teste Prático é realizado individualmente, em data e local a agendar. | ||
+ | |||
+ | '''A não realização de componentes obrigatórias tem como consequência a classificação de zero valores na componente de projecto e exclusão da avaliação em época normal.''' | ||
<!--'''TODAS AS ENTREGAS SÃO REALIZADAS ATÉ ÀS 12:00 ("meio-dia") DAS RESPECTIVAS DATAS''' | <!--'''TODAS AS ENTREGAS SÃO REALIZADAS ATÉ ÀS 12:00 ("meio-dia") DAS RESPECTIVAS DATAS''' | ||
--> | --> | ||
− | '''TODAS AS ENTREGAS SÃO REALIZADAS ATÉ ÀS 17:00 DAS RESPECTIVAS DATAS''' | + | '''TODAS AS ENTREGAS SÃO OBRIGATÓRIAS E SÃO REALIZADAS ATÉ ÀS 17:00 DAS RESPECTIVAS DATAS''' |
== Cálculo da Nota do Projecto e Condições de Aprovação == | == Cálculo da Nota do Projecto e Condições de Aprovação == | ||
Line 45: | Line 45: | ||
A Entrega "Zero" avalia o estado do projecto relativamente à concepção dos nós que representam os conceitos da linguagem (sem ser necessário tratar ainda do seu reconhecimento ou processamento). | A Entrega "Zero" avalia o estado do projecto relativamente à concepção dos nós que representam os conceitos da linguagem (sem ser necessário tratar ainda do seu reconhecimento ou processamento). | ||
− | Esta entrega tem uma classificação máxima de 2 valores. | + | '''Esta entrega é obrigatória e tem uma classificação máxima de 2 valores.''' |
Não serão executados testes automáticos nesta entrega. | Não serão executados testes automáticos nesta entrega. | ||
Line 53: | Line 53: | ||
Ver pormenores na pauta da avaliação da entrega "zero". | Ver pormenores na pauta da avaliação da entrega "zero". | ||
− | '''<font color="red">Considerando que é um passo crucial na concepção do projecto, a não realização desta entrega conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente exclusão da avaliação da disciplina no ano lectivo | + | '''<font color="red">Considerando que é um passo crucial na concepção do projecto, a não realização desta entrega conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente exclusão da avaliação da disciplina no ano lectivo corrente. A ausência de material relevante para a entrega será considerada uma não entrega, conduzindo a reprovação.</font>''' |
== Entrega Intermédia - Gerador de XML == | == Entrega Intermédia - Gerador de XML == | ||
Line 59: | Line 59: | ||
A Entrega Intermédia avalia o estado do projecto relativamente a um mínimo de funcionalidade. | 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. | + | '''Esta entrega é obrigatória e tem uma classificação máxima de 6 valores.''' |
Não serão executados testes automáticos nesta entrega. | Não serão executados testes automáticos nesta entrega. | ||
Ver pormenores na pauta da avaliação da entrega intermédia. | Ver pormenores na pauta da avaliação da entrega intermédia. | ||
− | |||
− | |||
− | + | '''<font color="red">A não realização da Entrega Intermédia conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente reprovação à disciplina no ano lectivo corrente. A ausência de material relevante para a entrega será considerada uma não entrega, conduzindo a reprovação.</font>''' | |
− | |||
== Entrega Final - Compilador Completo == | == Entrega Final - Compilador Completo == | ||
Line 74: | Line 71: | ||
A Entrega Final pressupõe que todo o projecto foi implementado. | A Entrega Final pressupõe que todo o projecto foi implementado. | ||
− | Esta entrega tem uma classificação máxima de 12 valores. | + | '''Esta entrega é obrigatória e tem uma classificação máxima de 12 valores.''' |
Serão executados testes automáticos nesta entrega. | 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. | 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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '''<font color="red">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 e consequente reprovação à disciplina no ano lectivo corrente.</font>''' | + | '''<font color="red">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 e consequente reprovação à disciplina no ano lectivo corrente. A ausência de material relevante para a entrega será considerada uma não entrega, conduzindo a reprovação.</font>''' |
== Teste Prático == | == Teste Prático == | ||
Line 107: | Line 99: | ||
'''O projecto deverá ser desenvolvido atempadamente ao longo do semestre.''' | '''O projecto deverá ser desenvolvido atempadamente ao longo do semestre.''' | ||
− | As versões intermédias registadas no | + | As versões intermédias registadas no Gitlab poderão ser testadas, pelo que deverão ser periodicamente actualizadas. O projecto é constituído por um projecto Gitlab designado pelo número do grupo que o executa. O repositório GIT disponibilizado já contém uma versão vazia do projecto. Apenas os ficheiros registados no projecto Gitlab serão considerados na avaliação. |
'''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.''' | '''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 | + | 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 '''til''' e não "TIL", "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 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.''' | '''Qualquer alteração à especificação da linguagem é penalizada, mesmo que possa ser entendida como um melhoramento.''' |
AVISOS - Avaliação em Época Normal |
---|
Esclarecimento de dúvidas:
|
Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):
|
Processo de avaliação (ver informação completa em Avaliação do Projecto):
|
Material de Uso Obrigatório |
---|
As bibliotecas CDK e RTS de apoio ao desenvolvimento do projecto são de uso obrigatório: |
|
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio. |
Uso Obrigatório: Repositório GIT |
Apenas se consideram para avaliação os projectos existentes no repositório GIT oficial. Apenas se considera para avaliação o ramo main.
Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho. |
A avaliação relativa à componente do Projecto processa-se em várias fases:
O Projecto (trabalho conducente às entregas acima mencionadas e abaixo descritas) é realizado por grupos de, no máximo, 2 (dois) elementos, durante o período estabelecido.
O Teste Prático é realizado individualmente, em data e local a agendar.
A não realização de componentes obrigatórias tem como consequência a classificação de zero valores na componente de projecto e exclusão da avaliação em época normal.
TODAS AS ENTREGAS SÃO OBRIGATÓRIAS E SÃO REALIZADAS ATÉ ÀS 17:00 DAS RESPECTIVAS DATAS
Componentes de avaliação:
A nota do teste prático condiciona a distância ao mínimo entre as notas do teste prático e a do projecto: desde um mínimo de 12.5% de acréscimo à menor das duas (abaixo de 7.5 valores no TP), até um máximo de 25% (para 20 valores no TP). O acréscimo é linear entre 7.5 e 20.
Ou seja:
Condições necessárias para aprovação à disciplina (necessárias todas):
A Entrega "Zero" avalia o estado do projecto relativamente à concepção dos nós que representam os conceitos da linguagem (sem ser necessário tratar ainda do seu reconhecimento ou processamento).
Esta entrega é obrigatória e tem uma classificação máxima de 2 valores.
Não serão executados testes automáticos nesta entrega.
Nesta fase, além da estrutura básica do compilador, todas as classes dos nós da linguagem, assim como os esqueletos dos "visitors" (xml_writer, postfix_writer, etc.) devem estar implementados. Não é ainda necessário ter implementado nenhum código de análise lexical, sintáctica ou semântica.
Ver pormenores na pauta da avaliação da entrega "zero".
Considerando que é um passo crucial na concepção do projecto, a não realização desta entrega conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente exclusão da avaliação da disciplina no ano lectivo corrente. A ausência de material relevante para a entrega será considerada uma não entrega, conduzindo a reprovação.
A Entrega Intermédia avalia o estado do projecto relativamente a um mínimo de funcionalidade.
Esta entrega é obrigatória e tem uma classificação máxima de 6 valores.
Não serão executados testes automáticos nesta entrega.
Ver pormenores na pauta da avaliação da entrega intermédia.
A não realização da Entrega Intermédia conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente reprovação à disciplina no ano lectivo corrente. A ausência de material relevante para a entrega será considerada uma não entrega, conduzindo a reprovação.
A Entrega Final pressupõe que todo o projecto foi implementado.
Esta entrega é obrigatória e tem uma classificação máxima de 12 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.
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 e consequente reprovação à disciplina no ano lectivo corrente. A ausência de material relevante para a entrega será considerada uma não entrega, conduzindo a reprovação.
O Teste Prático consiste em fazer pequenas alterações/extensões ao projecto descrito no enunciado. O teste é realizado 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.
O teste prático é como uma discussão de projecto, pelo que não existem repescagens como nos testes escritos. Alunos que faltem ao teste prático estão automaticamente reprovados à disciplina.
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 e consequente reprovação à disciplina no ano lectivo corrente.
Concretamente, o teste prático corresponde à resolução uma pergunta que aborda os seguintes três tópicos: análise lexical; análise sintáctica; e análise semântica e geração de código. Cada tópico pode ser resolvido com mais ou menos profundidade (embora isso implique funcionamento possivelmente deficiente a jusante) e será avaliado independentemente.
O projecto deverá ser desenvolvido atempadamente ao longo do semestre.
As versões intermédias registadas no Gitlab poderão ser testadas, pelo que deverão ser periodicamente actualizadas. O projecto é constituído por um projecto Gitlab designado pelo número do grupo que o executa. O repositório GIT disponibilizado já contém uma versão vazia do projecto. Apenas os ficheiros registados no projecto Gitlab serão considerados na avaliação.
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 til e não "TIL", "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 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.
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. No entanto, a funcionalidade do compilador final também é importante, 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.
A entrega de quaisquer trabalhos pressupõe o compromisso de honra que foram realizados pelos autores referenciados. A quebra deste compromisso, i.e., a tentativa de apropriação de trabalhos alheios, terá como consequência a reprovação de todos os alunos envolvidos (incluindo os que possibilitaram a ocorrência) no ano lectivo actual, sem prejuízo de acções disciplinares previstas pelo IST.