Manual de Referência para as equipes - versão agosto/2006 (para o BOCA versão 1.1.1)
Copyright (c) 2003-2006 Ulisses F. F. da Silva and Cassio
P. de Campos.
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.2 or any later
version published by the Free Software Foundation; with no Invariant Sections,
no Front-Cover Texts, and no Back-Cover Texts. A copy of the license may be
found in http://www.gnu.org/licenses/
O BOCA é um software criado para controlar uma competição nos moldes da Maratona de Programação da SBC. Foi feito em PHP e a interação dos times com o sistema é feita usando-se um browser. A seguir descrevemos a interface disponível no BOCA para as equipes e suas principais funções.
É interessante que todos os times testem essas opções durante a sessão de aquecimento (warmup) que antecede a competição. O warmup tem exatamente esta função, e assim espera-se que cada equipe submeta um problema correto, submeta um problema errado, faça perguntas aos juízes através do sistema de clarifications e até submeta um arquivo pequeno para impressão.
Neste texto será assumido que o time já realizou o seu login na máquina e abriu uma janela do navegador (leia as instruções sobre o Maratona Linux ou sobre o sistema que estiver sendo utilizado). O BOCA é acessado através de uma URL (no caso do Maratona Linux deve-se usar a página: http://mainserver/). Ao carregar a página, o time deverá ver a tela de login do BOCA. Basta digitar o login do BOCA fornecido ao time e a sua senha correspondente (no Maratona Linux, o login segue o formato teamX, onde X deve ser substituído pelo número da equipe. A senha inicial usualmente é vazia).
Após realizar o login com sucesso, uma página deverá ser aberta contendo a identificação do time no canto superior esquerdo. Durante a competição, conforme o time acerta os problemas, pequenos balões coloridos são apresentados próximos ao nome do time. No canto superior direito haverá a informação sobre o estado da competição: ou ainda não começou, ou já acabou, ou está parada, ou a competição está em andamento e a quantidade de minutos restantes será mostrada. Mais abaixo dessas primeiras linhas estarão sete opções, que representam a interface propriamente dita do BOCA. Estas sete opções são (da esquerda para a direita): Problems, Runs, Score, Clarifications, Tasks, Options e Logout.
Problems
Ao entrar nessa opção, o time poderá visualizar as questões da prova. Para cada questão, estará disponível um arquivo con sua descrição (muitas vezes apenas um arquivo de descrição é dado, contendo todas as questões da prova). Esta opção é normalmente utilizada para competições não-presenciais como forma de distribuir a prova. Em competições presenciais, sua utilidade é reduzida. Ainda nesta tela é possível visualizar as cores dos balões de cada problema.
Runs
Ao entrar nessa opção, o time poderá submeter as suas soluções e receber as respostas dos juízes. Para submeter uma solução, o time deverá selecionar o problema para o qual a solução foi feita, a linguagem utilizada e depois carregar o arquivo contendo a solução. Depois disso, basta clicar no botão Send para enviar sua solução. O botão Clear permite apagar os dados selecionados. Algumas observações importantes na hora de criar e submeter uma solução:
Para receber as respostas dos juízes, o time deverá clicar em Runs e esperar que a lista contendo as respostas recebidas para cada solução submetida seja atualizada (ainda assim, não perca tempo esperando. Você pode produzir enquanto a resposta dos juízes não chega). Vale a pena lembrar que nos últimos minutos os times que submeterem soluções não receberão mais as respostas dos juízes (assim o suspense fica melhor, não? :-). Esse prazo é informado na competição. Cada competição tem seu conjunto de respostas possível que as equipes podem receber. A seguir apresentamos apenas uma tabela exemplo com as respostas tradicionais. Verifique as especialidades da sua competição.
Resposta | Descrição |
YES | Seu programa foi aceito, e você receberá um balão da cor correspondente ao problema. |
NO: Incorrect Output | Também conhecido como Wrong Answer. Indica que seu programa respondeu incorretamente a algum(ns) dos testes dos juízes. |
NO: Time-limit Exceeded | A execução do seu programa excedeu o tempo permitido pelos juízes. Esse limite de tempo usualmente não é divulgado aos times e pode variar para cada problema. |
NO: Runtime Error | Durante o teste ocorreu um erro de execução (causado pelo seu programa) na máquina dos juízes. Acesso a posições irregulares de memória ou estouro dos limites da máquina são os erros mais comuns. |
NO: Compilation Error | Seu programa tem erros de sintaxe. Pode ser ainda que você errou o nome do problema ou linguagem no momento da submissão. |
NO: Output Format Error | Também conhecido como Presentation Error, indica que a saída do seu programa não segue a especificação exigida na folha de questões, apesar do "resultado" estar correto. Corrija para se adequar à especificação do problema. |
NO: Contact Staff | Você deve pedir a presença do pessoal de staff, pois algum erro incomum aconteceu. |
Score
Nessa opção será mostrado o placar atualizado da competição. Vale a pena lembrar que o placar será congelado antes do final da competição (suspense mantido :-). Esse prazo também é informado na competição, e o placar quando estiver congelado mostra um aviso sobre seu estado.
Clarifications
Essa opção permite que o time faça perguntas aos juízes a cerca de um problema específico ou de algum aspecto geral da prova. O time deverá selecionar o problema relacionado à sua pergunta ou selecionar General, caso a pergunta não seja específica. Logo abaixo deverá ser escrito o texto da clarification. Para enviar a clarification basta clicar no botão Send. O botão Clear apaga os dados selecionados. Para visualizar a resposta da clarification, o time deverá estar na opção Clarifications e olhar na lista das clarifications submetidas se a resposta já foi dada. Como já foi mencionado, uma lista contendo as clarifications pertinentes a cada time será sempre mostrada nessa opção. Algumas observações importantes sobre clarifications:
O sistema permite que o juiz utilize um botão chamado No response. Isso ocorre em geral porque a pergunta feita não deve ser respondida, pois sua resposta faz parte do entendimento da questão ou da prova. Neste caso sugerimos ler com cuidado as questões e as possíveis clarifications relacionadas.
Tasks
Ao entrar nessa opção, o time poderá enviar arquivos para impressão. Para isso o arquivo deve ser selecionado e então basta clicar no botão Send. O botão Clear permite apagar os dados selecionados. Outra opção neste item é o botão S.O.S. que pode ser usado para chamar a ajuda do pessoal de staff. Essa ajuda deve estar relacionada apenas com problemas do computador ou semelhantes, já que dúvidas sobre a prova devem ser enviadas pelo sistema BOCA na opção Clarifications.
Options
Entrando nessa opção poderão ser vistas as informações: Username,
User full name e User description do time. Também
será possível trocar a senha do time no BOCA digitando-se a senha antiga e a
nova (duas vezes). Para efetuar a troca da senha, basta preencher os campos
corretamente e clicar no botão Send.
Logout
Essa opção permite sair do BOCA.
Sobre o BOCA
O sistema BOCA foi criado por Cassio Polpo de Campos (EACH-USP) e pode ser encontrado em http://www.ime.usp.br/~cassio/boca. Este manual foi feito por Ulisses Furquim Freire da Silva (IC-Unicamp) e complementado e atualizado por Cassio Polpo de Campos.