aboutsummaryrefslogtreecommitdiff
path: root/doc/html/manualjudge.pt_br.html
blob: eabeecc546fec7614d81b4c054093c083bd7d883 (plain)
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&atilde;o</b></font>
<p><b>Manual de Refer&ecirc;ncia para os ju&iacute;zes<font size="5"> - </font>
vers&atilde;o setembro/2010 (para o BOCA vers&atilde;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 &eacute; um <i>software</i> criado para controlar uma competi&ccedil;&atilde;o nos moldes
da Maratona de Programa&ccedil;&atilde;o da SBC. Foi feito em PHP e a intera&ccedil;&atilde;o dos ju&iacute;zes
com o sistema &eacute; feita usando-se um <i>browser</i>. A seguir descrevemos a
interface dispon&iacute;vel no BOCA para os ju&iacute;zes e suas principais fun&ccedil;&otilde;es.</p>

<p>Neste texto ser&aacute; assumido que o juiz j&aacute; realizou o seu
<i>login</i> na m&aacute;quina e abriu uma janela do navegador (leia
as instru&ccedil;&otilde;es sobre o Maratona Linux ou sobre o sistema que
estiver sendo utilizado). O BOCA &eacute; acessado atrav&eacute;s de uma
<i>URL</i> (usualmente a p&aacute;gina se chama
http://mainserver/boca ou http://bocaserver/boca).
Ao carregar a p&aacute;gina, o juiz dever&aacute; 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&oacute;s realizar o <i>login</i> com sucesso, uma p&aacute;gina dever&aacute; ser aberta
contendo a identifica&ccedil;&atilde;o do juiz no canto superior esquerdo. 
No canto superior
direito haver&aacute; a informa&ccedil;&atilde;o sobre o estado da competi&ccedil;&atilde;o: ou ainda n&atilde;o
come&ccedil;ou, ou j&aacute; acabou, ou est&aacute; parada, ou a competi&ccedil;&atilde;o est&aacute; em andamento e a
quantidade de minutos restantes ser&aacute; mostrada. Mais abaixo dessas primeiras
linhas estar&atilde;o seis op&ccedil;&otilde;es, que representam a interface propriamente dita do
BOCA. Estas seis op&ccedil;&otilde;es s&atilde;o: <i>Runs,
Score, Clarifications, History, Options e Logout.</i>
Existe ainda uma op&ccedil;&atilde;o extra para o juiz chefe (que deve ser previamente apontado atrav&eacute;s da
interface do admin no sistema): <i>Chief</i>. Ela n&atilde;o est&aacute; dispon&iacute;vel para os demais ju&iacute;zes.
</p>

<p><font size="4"><b>Runs</b></font></p>
<p>Ao entrar nessa op&ccedil;&atilde;o, o juiz poder&aacute; visualizar as submiss&otilde;es que ainda
n&atilde;o foram corrigidas e devem ser processadas. Para corrigir uma submiss&atilde;o,
o juiz deve clicar sobre seu n&uacute;mero (como &eacute; feito o tratamento de concorr&ecirc;ncia
para que dois ou mais ju&iacute;zes n&atilde;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&atilde;o, o juiz ver&aacute; os seguintes campos:
<ol>
<li><b>Site</b>: n&uacute;mero do site atual.</li>
<li><b>Number</b>: n&uacute;mero da <i>Run</i> sendo julgada.</li>
<li><b>Time</b>: minutos decorridos da competi&ccedil;&atilde;o para esta submiss&atilde;o.</li>
<li><b>Problem</b> <i>X</i>: <i>X</i> &eacute; 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&iacute;da (clicando em <i>view</i>). Usando o esquema de
autojudging, o importante &eacute; ficar atento &agrave; sa&iacute;da esperada, comparando-a com a
sa&iacute;da que o programa da equipe gerou.</li>
<li><b>Language</b> <i>Y</i>: <i>Y</i> &eacute; a linguagem escolhida pela equipe. Ao
lado aparece o script para compila&ccedil;&atilde;o e execu&ccedil;&atilde;o nesta linguagem. Note que,
utilizando o esquema de autojudging, n&atilde;o &eacute; necess&aacute;rio olhar para esse arquivo.</li>
<li><b>Source code</b>: Aqui &eacute; poss&iacute;vel visualizar (<i>view</i>) ou fazer o
download do arquivo submetido. Um ponto importante para o juiz &eacute; verificar se
o nome e a extens&atilde;o desse arquivo est&atilde;o de acordo com o problema e a linguagem
escolhidos.</li>
<li><b>Answer</b>: Neste campo o juiz escolher&aacute; qual a resposta que ser&aacute; enviada
para a equipe. Para tomar essa decis&atilde;o, ele tem &agrave; disposi&ccedil;&atilde;o os arquivos e bot&otilde;es
j&aacute; mencionados e tamb&eacute;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 &agrave;s equipes, mas pode
falhar. Por exemplo, ele pode dizer que a resposta est&aacute; errada (<b>Incorrect Output</b>), 
pois comparou os arquivos e n&atilde;o eram iguais, mas o &uacute;nico erro do programa da
equipe foi na digita&ccedil;&atilde;o de um acento em uma palavra (usualmente isso &eacute; simplesmente
um <b>Output format error</b>). Outros detalhes podem ocorrer, e o juiz deve
estar atento aos pr&oacute;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&atilde;o essencial
na corre&ccedil;&atilde;o.</li>
<li><b>Standard output</b>: links para fazer o download ou visualizar a sa&iacute;da
padr&atilde;o gerada pelo programa da equipe. Usualmente neste lugar deve estar a
sa&iacute;da que foi gerada pela equipe e que deve ser comparada com a sa&iacute;da esperada,
dispon&iacute;vel no item <b>Problem</b>. Caso haja algum problema, eventualmente
pode ser poss&iacute;vel visualizar o erro aqui.</li>
<li><b>Standard error</b>: links para fazer o download ou visualizar a sa&iacute;da de
erro padr&atilde;o gerada pelo programa da equipe. Quando um problema acontece, por
exemplo um erro em tempo de execu&ccedil;&atilde;o por causa de um acesso ilegal, a informa&ccedil;&atilde;o
sobre o erro torna-se dispon&iacute;vel nesta sa&iacute;da de erro. Al&eacute;m de sempre 
analisar essa sa&iacute;da, o juiz deve estar atento &agrave; sa&iacute;da padr&atilde;o, pois m&aacute;quinas virtuais
como da linguagem Java podem escrever os erros na sa&iacute;da padr&atilde;o e/ou na sa&iacute;da
de erro. Na sa&iacute;da de erro est&aacute; ainda o resultado do diff feito entre o arquivo
    esperado e o arquivo gerado pelo programa submetido.
</li>
</ol>

<p>Utilizando o bot&atilde;o <b>Judge</b> o juiz faz o julgamento da <i>Run</i>, e ap&oacute;s
isso n&atilde;o tem mais acesso para alterar seu julgamento. &Eacute; poss&iacute;vel ainda devolver
a <i>Run</i> para o <i>pool</i> de submiss&otilde;es a serem julgadas, utilizando o
bot&atilde;o <b>Cancel</b>.</p>

<p>Na tela de <i>Runs</i>, o juiz visualiza todas as submiss&otilde;es, mesmo aquelas que
est&atilde;o sendo julgadas por outros ju&iacute;zes. Tais submiss&otilde;es aparecem com a cor
azul. As submiss&otilde;es sendo julgados por ele pr&oacute;prio aparecem em vermelho, e somente
ele tem acesso para julg&aacute;-las (ou o admin, claro).</p>

<p></p>
<p><font size="4"><b>Chief</b></font></p>
<p>
Al&eacute;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&ccedil;&atilde;o de julgar <i>runs</i> que foram previamente julgadas mas obtiveram resultados
diferentes dos diferentes ju&iacute;zes. A tela &eacute; similar &agrave;quela do juiz normal, s&oacute; que <i>runs</i>
julgadas aqui s&atilde;o dadas como resposta final ao time, sem a necessidade de interven&ccedil;&atilde;o de outro juiz.
Por esse motivo, &eacute; aconselh&aacute;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&iacute;zes. Al&eacute;m das informa&ccedil;&otilde;es da <i>run</i>, o juiz chefe possui
(ao clicar sobre a <i>run</i>) as resposta contradit&oacute;rias que foram dados pelos ju&iacute;zes, de forma a desempatar
a quest&atilde;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&ccedil;&atilde;o ser&aacute; mostrado o placar atualizado da competi&ccedil;&atilde;o. Vale a pena
lembrar que o placar dispon&iacute;vel para os ju&iacute;zes &eacute; completo, e portanto
deve ser mantido em <b>sigilo at&eacute; a divulga&ccedil;&atilde;o dos resultados finais da competi&ccedil;&atilde;o</b>
(para manter o suspense :-). </p>

<p><font size="4"><b>Clarifications</b></font></p>
<p>Essa op&ccedil;&atilde;o permite que o juiz responda as <i>clarifications</i> enviadas
pelas equipes a cerca de um problema espec&iacute;fico ou de algum aspecto geral da 
prova. Para responder uma <i>clarification</i>, o juiz deve clicar sobre seu
n&uacute;mero <b>Cuidado:</b> a caixa de texto dispon&iacute;vel na parte inferior n&atilde;o &eacute; para 
responder perguntas, mas para elaborar uma pergunta. Isso serve para que um juiz
crie uma pergunta, que ent&atilde;o poder&aacute; ser respondida por ele mesmo (ou por outros
ju&iacute;zes) e enviada para todas as equipes, funcionando assim como uma forma de
aviso geral.</p> 

<p>Neste instante ele poder&aacute; visualizar informa&ccedil;&otilde;es sobre a <i>clarification</i>,
como n&uacute;mero do site, n&uacute;mero da <i>clarification</i>, tempo em minutos desde o 
in&iacute;cio da competi&ccedil;&atilde;o e problema sobre o qual
a pergunta est&aacute; relacionada, al&eacute;m de duas caixas de texto: uma com a
pergunta e outra onde ser&aacute; preenchida a resposta. Se julgar relevante, o juiz
pode clicar nas sele&ccedil;&otilde;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&ccedil;&atilde;o executada no BOCA em um &uacute;nico site, n&atilde;o h&aacute; diferen&ccedil;a entre estas sele&ccedil;&otilde;es).</p>

<p>O sistema tamb&eacute;m permite que o juiz utilize um bot&atilde;o chamado 
<u><i>No response</i></u>. Isso ocorre
em geral porque a pergunta feita n&atilde;o deve ser respondida, pois sua resposta faz parte do 
entendimento da quest&atilde;o ou da prova, ou j&aacute; foi respondida anteriormente.
Por fim, existe um bot&atilde;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&ccedil;&atilde;o, o juiz poder&aacute; visualizar as <i>Clarifications</i> e
<i>Runs</i> que foram respondidas/corrigidas at&eacute; o momento. 
N&atilde;o &eacute; poss&iacute;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&aacute; no momento de testar o sistema e o conjunto de problemas. Ju&iacute;zes
podem submeter <i>runs</i> mesmo antes de iniciada a competi&ccedil;&atilde;o.
</p>

<p><font size="4"><b>Options</b></font></p>
<p>Entrando nessa op&ccedil;&atilde;o poder&atilde;o ser vistas as informa&ccedil;&otilde;es: <i>Username,
User</i> <i>full name </i>e<i> User description</i> do juiz.<i> </i>Tamb&eacute;m
ser&aacute; poss&iacute;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&atilde;o <i>Send</i>. &Eacute; importante ter uma senha
segura para um juiz.<br>

</p>
<p><font size="4"><i><b>Logout</b></i></font></p>
<p>Essa op&ccedil;&atilde;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&iacute;vel
alterar a corre&ccedil;&atilde;o posteriormente (atrav&eacute;s do ambiente do administrador da competi&ccedil;&atilde;o),
isso implica que a equipe receber&aacute; uma resposta e, depois de certo tempo, outra.
Obviamente esse tipo de situa&ccedil;&atilde;o n&atilde;o &eacute; agrad&aacute;vel.</p>
<p>Sempre que um dos ju&iacute;zes est&aacute; corrigindo um problema pela primeira vez (ou ainda nas
demais vezes iniciais, isto &eacute;, at&eacute; o momento foram feitas poucas submiss&otilde;es
desde problema),
&eacute; interessante que todos participem e tenham cuidados especiais, analisando a
submiss&atilde;o com calma. &Eacute; poss&iacute;vel que na primeira
submiss&atilde;o de um dado problema possamos descobrir um defeito no
sistema ou nos arquivos de entrada e sa&iacute;da (claro que torcemos para isso nunca aconte&ccedil;a :-).
</p>
<p>Para responder &agrave;s <i>clarifications</i>, &eacute; necess&aacute;rio que o juiz tenha lido com
calma as quest&otilde;es e identifique se a pergunta &eacute; v&aacute;lida e deve ser respondida. Al&eacute;m disso,
&eacute; necess&aacute;rio considerar se a resposta deve ser enviada para todas as equipes ou apenas
para aquela que fez a pergunta. Perguntas t&iacute;picas que n&atilde;o s&atilde;o respondidas s&atilde;o:
<i>Qual o tempo limite desse problema?</i>, <i>Dada essa entrada, qual a sa&iacute;da correta?</i>,
etc. Al&eacute;m disso, perguntas cujas respostas est&atilde;o definidas nos enunciados normalmente 
n&atilde;o s&atilde;o respondidas.
Caso haja uma d&uacute;vida sobre o que se deve responder, o juiz deve procurar o juiz-chefe
respons&aacute;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>