BOCA Online Contest Administrator - Sistema de Submissão

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:

  1. Crie o seu arquivo-fonte contendo a solução de um problema com o nome indicado no enunciado.
  2. Escolha a linguagem correta. Note que seu fonte deverá ter a extensão correspondente para cada uma das linguagens aceitas (veja a folha de questões da prova).
  3. Lembre-se de que sua solução deve ler os dados da entrada padrão e escrever os resultados na saída padrão. Nada deve ser escrito na saída padrão de erro. Além disso, programas escritos em linguagens que possibilitam o retorno de algum valor para o sistema operacional devem retornar o valor 0 (zero), que por convenção indica que nenhum problema ocorreu na execuçã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.

RespostaDescriçã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:

  1. Os times devem fazer perguntas sobre a prova utilizando apenas essa interface disponível no BOCA!
  2. O time deverá ficar atento às clarifications durante toda a prova, pois uma clarification feita por um time poderá ser respondida para todos os outros. Os juízes também podem enviar clarifications a todos os times se julgarem conveniente. Fiquem atentos.
  3. A resposta do clarification não surge na tela (como as respostas das runs). Você deve consultar esta página para vê-la.

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.


Valid HTML 4.01!