1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Manual do BOCA para as equipes</title>
</head>
<body bgcolor="white" link="blue" vlink="blue">
<font size="5"><b>BOCA Online Contest Administrator - Sistema de Submissão</b></font>
<p><b>Manual de Referência para os juízes<font size="5"> - </font>
versão setembro/2010 (para o BOCA versão 1.4.x)</b>
</p>
<p><font size="1">Copyright (c) 2006-2010 Cassio P. de Campos (cassio@ime.usp.br).<br>
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 <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></font></p>
<p>O BOCA é um <i>software</i> criado para controlar uma competição nos moldes
da Maratona de Programação da SBC. Foi feito em PHP e a interação dos juízes
com o sistema é feita usando-se um <i>browser</i>. A seguir descrevemos a
interface disponível no BOCA para os juízes e suas principais funções.</p>
<p>Neste texto será assumido que o juiz já realizou o seu
<i>login</i> 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
<i>URL</i> (usualmente a página se chama
http://mainserver/boca ou http://bocaserver/boca).
Ao carregar a página, o juiz deverá ver a
tela de <i>login</i> do BOCA. Basta digitar o <i>login</i> do
BOCA fornecido ao juiz e a sua senha correspondente.</p>
<p>Após realizar o <i>login</i> com sucesso, uma página deverá ser aberta
contendo a identificação do juiz no canto superior esquerdo.
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 seis opções, que representam a interface propriamente dita do
BOCA. Estas seis opções são: <i>Runs,
Score, Clarifications, History, Options e Logout.</i>
Existe ainda uma opção extra para o juiz chefe (que deve ser previamente apontado através da
interface do admin no sistema): <i>Chief</i>. Ela não está disponível para os demais juízes.
</p>
<p><font size="4"><b>Runs</b></font></p>
<p>Ao entrar nessa opção, o juiz poderá visualizar as submissões que ainda
não foram corrigidas e devem ser processadas. Para corrigir uma submissão,
o juiz deve clicar sobre seu número (como é feito o tratamento de concorrência
para que dois ou mais juízes não peguem a mesma <i>Run</i>, neste momento o juiz pode
ser avisado que a <i>Run</i> acaba de ser pega por outro juiz). Ao clicar em uma
submissão, o juiz verá os seguintes campos:
<ol>
<li><b>Site</b>: número do site atual.</li>
<li><b>Number</b>: número da <i>Run</i> sendo julgada.</li>
<li><b>Time</b>: minutos decorridos da competição para esta submissão.</li>
<li><b>Problem</b> <i>X</i>: <i>X</i> é o nome do problema. Ao lado, existem
links para fazer o download (clicando sobre o nome) ou simplesmente visualizar
os arquivos de entrada e saída (clicando em <i>view</i>). Usando o esquema de
autojudging, o importante é ficar atento à saída esperada, comparando-a com a
saída que o programa da equipe gerou.</li>
<li><b>Language</b> <i>Y</i>: <i>Y</i> é a linguagem escolhida pela equipe. Ao
lado aparece o script para compilação e execução nesta linguagem. Note que,
utilizando o esquema de autojudging, não é necessário olhar para esse arquivo.</li>
<li><b>Source code</b>: Aqui é possível visualizar (<i>view</i>) ou fazer o
download do arquivo submetido. Um ponto importante para o juiz é verificar se
o nome e a extensão desse arquivo estão de acordo com o problema e a linguagem
escolhidos.</li>
<li><b>Answer</b>: Neste campo o juiz escolherá qual a resposta que será enviada
para a equipe. Para tomar essa decisão, ele tem à disposição os arquivos e botões
já mencionados e também, logo abaixo, os dados gerados pelo esquema de autojudging
(se esse esquema estiver sendo utilizado).</li>
<li><b>Autojudging answer</b>: Resposta sugerida pelo esquema de autojudging.
Usualmente o autojudging acerta o que deve ser respondido às equipes, mas pode
falhar. Por exemplo, ele pode dizer que a resposta está errada (<b>Incorrect Output</b>),
pois comparou os arquivos e não eram iguais, mas o único erro do programa da
equipe foi na digitação de um acento em uma palavra (usualmente isso é simplesmente
um <b>Output format error</b>). Outros detalhes podem ocorrer, e o juiz deve
estar atento aos próximos demais dados fornecidos pelo autojudging.</li>
<li><b>Autojudged by</b>: indica qual computador fez o autojudging, no
caso de diversos autojudgings estarem sendo utilizados. Usualmente não essencial
na correção.</li>
<li><b>Standard output</b>: links para fazer o download ou visualizar a saída
padrão gerada pelo programa da equipe. Usualmente neste lugar deve estar a
saída que foi gerada pela equipe e que deve ser comparada com a saída esperada,
disponível no item <b>Problem</b>. Caso haja algum problema, eventualmente
pode ser possível visualizar o erro aqui.</li>
<li><b>Standard error</b>: links para fazer o download ou visualizar a saída de
erro padrão gerada pelo programa da equipe. Quando um problema acontece, por
exemplo um erro em tempo de execução por causa de um acesso ilegal, a informação
sobre o erro torna-se disponível nesta saída de erro. Além de sempre
analisar essa saída, o juiz deve estar atento à saída padrão, pois máquinas virtuais
como da linguagem Java podem escrever os erros na saída padrão e/ou na saída
de erro. Na saída de erro está ainda o resultado do diff feito entre o arquivo
esperado e o arquivo gerado pelo programa submetido.
</li>
</ol>
<p>Utilizando o botão <b>Judge</b> o juiz faz o julgamento da <i>Run</i>, e após
isso não tem mais acesso para alterar seu julgamento. É possível ainda devolver
a <i>Run</i> para o <i>pool</i> de submissões a serem julgadas, utilizando o
botão <b>Cancel</b>.</p>
<p>Na tela de <i>Runs</i>, o juiz visualiza todas as submissões, mesmo aquelas que
estão sendo julgadas por outros juízes. Tais submissões aparecem com a cor
azul. As submissões sendo julgados por ele próprio aparecem em vermelho, e somente
ele tem acesso para julgá-las (ou o admin, claro).</p>
<p></p>
<p><font size="4"><b>Chief</b></font></p>
<p>
Além de poder atuar como um juiz <i>normal</i>, um juiz pode ser designado como <i>chief</i>. Nesta aba
o juiz chefe tem a opção de julgar <i>runs</i> que foram previamente julgadas mas obtiveram resultados
diferentes dos diferentes juízes. A tela é similar àquela do juiz normal, só que <i>runs</i>
julgadas aqui são dadas como resposta final ao time, sem a necessidade de intervenção de outro juiz.
Por esse motivo, é aconselhável que mesmo o juiz chefe, quando estiver julgando <i>runs</i> sem conflito, apenas
utilize a aba <i>Runs</i>, e deixe para utilizar esta aba apenas para resolver os casos de <i>runs</i> que foram julgadas de
forma diferente por diferente juízes. Além das informações da <i>run</i>, o juiz chefe possui
(ao clicar sobre a <i>run</i>) as resposta contraditórias que foram dados pelos juízes, de forma a desempatar
a questão e enviar a resposta mais adequada ao time.
</p>
<p></p>
<p></p>
<p><font size="4"><b>Score</b></font></p>
<p>Nessa opção será mostrado o placar atualizado da competição. Vale a pena
lembrar que o placar disponível para os juízes é completo, e portanto
deve ser mantido em <b>sigilo até a divulgação dos resultados finais da competição</b>
(para manter o suspense :-). </p>
<p><font size="4"><b>Clarifications</b></font></p>
<p>Essa opção permite que o juiz responda as <i>clarifications</i> enviadas
pelas equipes a cerca de um problema específico ou de algum aspecto geral da
prova. Para responder uma <i>clarification</i>, o juiz deve clicar sobre seu
número <b>Cuidado:</b> a caixa de texto disponível na parte inferior não é para
responder perguntas, mas para elaborar uma pergunta. Isso serve para que um juiz
crie uma pergunta, que então poderá ser respondida por ele mesmo (ou por outros
juízes) e enviada para todas as equipes, funcionando assim como uma forma de
aviso geral.</p>
<p>Neste instante ele poderá visualizar informações sobre a <i>clarification</i>,
como número do site, número da <i>clarification</i>, tempo em minutos desde o
início da competição e problema sobre o qual
a pergunta está relacionada, além de duas caixas de texto: uma com a
pergunta e outra onde será preenchida a resposta. Se julgar relevante, o juiz
pode clicar nas seleções <b>answer to all users in the site</b> para que esta pergunta seja
respondida (enviada) para todas as equipes no site ou <b>answer to all users in all sites</b>
para que a resposta seja enviada para todas as equipes em todos os sites (no caso de
uma competição executada no BOCA em um único site, não há diferença entre estas seleções).</p>
<p>O sistema também permite que o juiz utilize um botão chamado
<u><i>No response</i></u>. 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, ou já foi respondida anteriormente.
Por fim, existe um botão onde o juiz pode devolver a <i>clarification</i> para que
outro juiz a responda.
</p>
<p><font size="4"><b>History</b></font></p>
<p>Ao entrar nessa opção, o juiz poderá visualizar as <i>Clarifications</i> e
<i>Runs</i> que foram respondidas/corrigidas até o momento.
Não é possível alterar nada, apenas visualizar.</p>
<p><font size="4"><b>History</b></font></p>
<p>Nesta aba o juiz pode atuar como uma equipe, submetendo <i>runs</i> para serem julgadas.
O uso deste item se dá no momento de testar o sistema e o conjunto de problemas. Juízes
podem submeter <i>runs</i> mesmo antes de iniciada a competição.
</p>
<p><font size="4"><b>Options</b></font></p>
<p>Entrando nessa opção poderão ser vistas as informações: <i>Username,
User</i> <i>full name </i>e<i> User description</i> do juiz.<i> </i>Também
será possível trocar a senha do juiz 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 <i>Send</i>. É importante ter uma senha
segura para um juiz.<br>
</p>
<p><font size="4"><i><b>Logout</b></i></font></p>
<p>Essa opção permite sair do BOCA.</p>
<p><font size="4"><b>Dicas importantes</b></font></p>
<p>Ao corrigir problemas, devemos tomar extremo cuidado. Ainda que seja possível
alterar a correção posteriormente (através do ambiente do administrador da competição),
isso implica que a equipe receberá uma resposta e, depois de certo tempo, outra.
Obviamente esse tipo de situação não é agradável.</p>
<p>Sempre que um dos juízes está corrigindo um problema pela primeira vez (ou ainda nas
demais vezes iniciais, isto é, até o momento foram feitas poucas submissões
desde problema),
é interessante que todos participem e tenham cuidados especiais, analisando a
submissão com calma. É possível que na primeira
submissão de um dado problema possamos descobrir um defeito no
sistema ou nos arquivos de entrada e saída (claro que torcemos para isso nunca aconteça :-).
</p>
<p>Para responder às <i>clarifications</i>, é necessário que o juiz tenha lido com
calma as questões e identifique se a pergunta é válida e deve ser respondida. Além disso,
é necessário considerar se a resposta deve ser enviada para todas as equipes ou apenas
para aquela que fez a pergunta. Perguntas típicas que não são respondidas são:
<i>Qual o tempo limite desse problema?</i>, <i>Dada essa entrada, qual a saída correta?</i>,
etc. Além disso, perguntas cujas respostas estão definidas nos enunciados normalmente
não são respondidas.
Caso haja uma dúvida sobre o que se deve responder, o juiz deve procurar o juiz-chefe
responsável pela prova.
</p>
<p><font size="4"><b>Sobre o BOCA e este documento</b></font></p>
<p>O sistema BOCA foi criado por Cassio Polpo de Campos
e pode ser encontrado em
<a href="http://www.ime.usp.br/~cassio/boca/">http://www.ime.usp.br/~cassio/boca/</a>.
Este manual foi feito por Cassio Polpo de Campos.</p>
<hr>
<p>
<a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" border="0" height="31" width="88"></a>
</p></body></html>
|