Informações para o 1º Teste Prático
Este teste é uma remarcação do 1º teste prático que teve de ser anulado e tem exatamente os mesmos objetivos.
Podem ver os problemas do teste de 16 nov no Mooshak em "Preparação para o Teste 1".
Devem responder até final de 2 Dez ao pequeno questionário sobre a vossa presença, horário preferido e editor - ir ao Mooshak e entrar em "Informação sobre Teste #1 (responder até final de 2 Dez)".
Informações Gerais
- Data: 7 de dezembro de 2022
- Hora: Existirão dois turnos (14:30 e 16:40)
[ver atribuição de turno e sala]
- Local: Laboratórios FC6 155, FC6 157, FC6 163 e FC6 165.
- Duração: 2h (exercícios dimensionados para menos tempo)
- Método: o teste será presencial (nos laboratórios do DCC, que têm Linux e os editores habituais) e irão ter acesso a computador, documentação do Java, código base (essencialmente o que está na lista de código exemplo) e irão submeter no Mooshak, sendo que poderão ver alguns casos de teste quando falham, tal como nas aulas práticas.
- Pontuação: este teste vale 2.5 valores (ver descrição da fórmula de cálculo da vossa classificação nesta unidade curricular)
São 4 pequenos exercícios cotados com 34%+33%+33%+20%.
Em cada exercício podem existir cotações parciais (ex: passa nalguns testes, falha noutros). Só em casos muito excepcionais a pontuação será diferente da atribuida pelo Mooshak. Podem acontecer casos onde recebem mais pontos do que o Mooshak atribuiu (ex: está tudo certo e falta apenas um ponto e vírgula :)) ou menos pontos (ex: não fizeram o pedido ou tentaram fazer "batota"). Se tentarem genuinamente fazer os problemas não vão ter nenhum "chatice".
Objectivos específicos para cada exercício e problemas de treino
- [34%] Exercício 1: problemas simples com ciclos
Terão de implementar um programa pequeno que lê da entrada padrão um ou mais números e imprime algo. O exercício será de dificuldade simples e passará na sua essência por saber ler, criar variáveis (e possivelmente arrays) e saber usar ciclos.
- [33%] Exercício 2: implementação de métodos para listas ligadas simples
Terão de adicionar um ou mais pequenos métodos à classe SinglyLinkedList. Será dada como base a implementação dada nas aulas (ver slides | ver implementação) e serão descritos o métodos a implementar, incluindo a assinatura do método (qual o tipo de retorno e o tipo dos argumentos). Irão submeter a classe como nas aulas (com os novos métodos adicionados).
- [33%] Exercício 3: programa completo (incluindo ler e escrever) que usa listas, pilhas e/ou filas
Problema com base do algoritmo a usar descrito no enunciado. O tema do problema implicará que é conveniente usar listas, pilhas ou filas, mas poderão usar qualquer implementação (ex: usar a base de código dada nas aulas, usar TADs do próprio Java, ou usar uma qualquer implementação vossa).
- [20%] Exercício 4: problema de valorização
Este problema pode dar 20% adicionais (0.5 valores), ou seja, é possível ter nota acima dos 2.5 valores (por exemplo para compensar algo que corra menos bem noutro componente da avaliação). Não serão dadas dicas e terão de pensar no algoritmo adequado. O problema não será completamente resolúvel com uma solução exaustiva de "força bruta", pelo será necessário ser eficiente. A complexidade esperada será dada no enunciado e não será dado nenhum código base. Este exercício será um pouco mais complicado que os outros e aconselhamos a apenas o tentarem depois de terem feito os três primeiros exercícios.