-
Notifications
You must be signed in to change notification settings - Fork 2
/
NCPC-Site-HOWTO.html
406 lines (368 loc) · 16.4 KB
/
NCPC-Site-HOWTO.html
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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
---
layout: old_default
title: "NCPC site HOWTO"
---
<h1>NCPC site HOWTO</h1>
<table>
<tr>
<td style="padding-right: 10px;"><a href="NCPC-Site-HOWTO.html">NCPC-Site-HOWTO</a></td>
<td style="padding-right: 10px;"><a href="NCPC-Director-HOWTO.html">NCPC-Director-HOWTO</a></td>
</tr>
</table>
<p><i> Unfortunately this page is a bit out of date. We plan to update it. </i> </p>
<h2>Checklist</h2>
<ul>
<li>Contact the NCPC director Fredrik Niemelä<code><fredrik@niemela.se></code> and announce your interest.</li>
<!-- TODO: Add new links...
<li>Subscribe to the
<a href="https://sympa.uio.no/ifi.uio.no/info/ncpc-info">ncpc-info</a>
and <a href="https://sympa.uio.no/ifi.uio.no/info/ncpc-directors">ncpc-directors</a>
mailing-lists.</li>
-->
<li>Get familiar with team registration procedures (see below).</li>
<li>Get help needed during competition (judges etc). Might be zero extras on
a small site.</li>
<li>Reserve computer lab for the competition day (usually the first Saturday in October).</li>
<li>Check that room is accessible, and that lights and ventilation will work
during the competition.</li>
<li>If necessary, create system user accounts before contest, and print
user-names and passwords to hand out.</li>
<li>Get familiar with the Kattis system, which will be used for submitting
problems in the contest
(<a href="https://open.kattis.com/documentation">Instructions for the Kattis contest system</a>,
<a href="https://open.kattis.com/documentation/tutorial1">A Kattis tutorial</a>).</li>
<li>Optional: Organise practice session.</li>
<li>Optional: Get balloons.</li>
<li>Optional: Order food.</li>
<li>Optional: Buy prices.</li>
<li>Check if department will sponsor trip to the regionals for winning
team.</li>
<li>Optional: Announce the contest during lectures in relevant courses.</li>
<li>Optional: Put up posters.</li>
<li>Advance winner to regionals.</li>
</ul>
<h2>Organisation</h2>
<p>
First of all, you need to tell the national organiser that you are interested
in hosting the contest at your school or university.
<!-- TODO: re-add with new links.
Then you should
subscribe to the
<a href="https://sympa.uio.no/ifi.uio.no/info/ncpc-info">ncpc-info</a>
and <a href="https://sympa.uio.no/ifi.uio.no/info/ncpc-directors">ncpc-directors</a>
mailing-lists, to get important announcements. They are a low-traffic list, expect close to the competition.
-->
</p>
<p>
If you think you are going to have more than just a few contestants, you
should probably get some people to reserve the day for helping out. If there
are 20 teams, you will not have time to process their submissions, serve them
pizza, and fix the minor problems that surface all by yourself.
</p>
<h2>Practical issues</h2>
<h3>Reserving a computer lab</h3>
<p>
You should reserve a computer lab for the contest. Make sure that
all contestants have access to the lab, and that lights and
ventilation will be on at the time of the contest. Make sure that
the computers in the lab have all the needed software. It is
important to try to match the versions of compilers used by Kattis
as much as possible (<a href="https://open.kattis.com/documentation/techinfo">Kattis techinfo</a>).
</p>
<h3>Team registration</h3>
<ol>
<li> Make sure you have an account at
<a href="http://icpc.baylor.edu/">http://icpc.baylor.edu/"</a>:
<ul>
<li>If you don't have an account created after april 2008 you need to
register yourself at
<a href="http://icpc.baylor.edu">/http://icpc.baylor.edu/</a>.</li>
<li>With your personal account you will be able to register/admin your
teams as coach. But you will also be able to manage your sites if you
are a site director using the same account.</li>
</ul>
</li>
<li>Registration is done using the ICPC registration system.
<ul>
<li>The teams register themselves and you as the site director
only need to approve them. To approve a team you log on to the
ICPC registration
system <a href="http://icpc.baylor.edu/">http://icpc.baylor.edu/</a>
and go to the site director part (under contests in the
dashboard). You have site director access if the NCPC director
has given you one. Choose "reservations", and mark teams as
accepted.
</li>
<li>A few days before the contest the contest director will send
out a request for all non ICPC-eligible teams to inform the
contest directors about it.
</li>
</ul>
</li>
<!--
<li>Team registration works as follows:
<ul>
<li>Team goes to
<a href="http://ncpc.idi.ntnu.no/">http://ncpc.idi.ntnu.no/</a>and
registers. This is a local system we set up locally for convenience, to
reduce the work for the coaches.</li>
<li>You receive an e-mail with the details they filled out (a copy is
sent to the contest director as well). For this to happen, it is
important that your e- mail address is in the local system. You can
check this on the registration page.</li>
<li>When you want to register some teams, you go to
<a href="http://icpc.baylor.edu/">http://icpc.baylor.edu/</a> and
login. Click on "Dashboard" and your personal dashboard gets visible.
Under "Teams" in the right menu you can both create new teams or view
(admin) already created teams.</li>
<li>NOTE! Make sure you register your teams to the correct site
(probably your own site): "+Europe Regional Contest", "+Northwestern
Europe Contest", "+Nordic Collegiate Programming Contest", now you see
your site!</li>
<li>NOTE! Only add ICPC-eligible teams in the ICPC-system (the
non-ICPC-teams you need to handle manually).</li>
<li>Each contestant on the team will then receive an email from the ICPC
system, requesting that they complete their information.</li>
</ul>
</li>
<li>Administer your site in the ICPC-system:
<ul>
<li>Before the contest, go to the site director part (under
contests in the dashboard) at
<a href="http://icpc.baylor.edu/">http://icpc.baylor.edu/</a>. You have
site director access if the NCPC director has given you one. Choose
"reservations", and mark teams as accepted.</li>
</ul>
</li>
-->
</ol>
<h3>Advertising the contest</h3>
<p>
How much should advertise the contest depends on how much effort you are
willing to put into it. Even though the contest is already established and
well known among some, one of its main goals is to promote the interest in
programming among all students.
</p>
<p>
Your can ask lecturers in introductory programming courses, and especially
in courses focused on algorithms, to give you five minutes to introduce the
contest. You could perhaps solve an example problem.
</p>
<p>
If there are e-mail lists for students at your department, you could use
these. Think of what faculties are relevant (computer science, electrical
engineering, math, and so on). If you are unsure, ask the administration at
your department what lists you may use.
</p>
<p>
It might also be good to put up some posters. Ask your national organiser
if he has any, or make some yourself.
</p>
<p>
Remember to tell:
</p>
<ul>
<li>When is the contest.</li>
<li>Optional: When is the warm-up round.</li>
<li>Where will the contest be held.</li>
<li>Who are allowed to compete.</li>
<li>Who are qualified to compete (anybody who have taken an introductory
programming course, or have equivalent skills).</li>
<li>Whether food will be served during the contest.</li>
<li>Optional: What the local winners will receive (prizes, trip to
regionals).</li>
<li>Where to find more information.</li>
</ul>
<h3>Practice Session (Optional, but recommended)</h3>
<p>
This should be skipped only if you organise a small site.
</p>
<p>
Many sites have a practice session a week or so before the contest. It is
good both for the students and for the organisers. The easiest is to pick a
problem set from one of:
</p>
<ul>
<li><a href="http://www.spoj.pl/">SPOJ</a></li>
<li><a href="http://uva.onlinejudge.org/">UVa Online Judge</a></li>
<li>ACM ICPC <a href="http://www.acm.inf.ethz.ch/">Problem Set Archive</a>
(1984-2001)</li>
<li>ACM ICPC
<a href="http://acmicpc-live-archive.uva.es/nuevoportal/">Live Archive</a>
(2000-now)</li>
</ul>
<p>
Remember to reserve the computer lab for the practise session also.
</p>
<!--
<p>
FIXME discuss: Should we have a joined practise session, with PC^2 linked?
Remember that we should try to minimise the work for the site organisers.
</p>
-->
<h3>Balloons (Optional)</h3>
<p>
In ACM ICPC contests, it is common that each team get a balloon for each
task they solve. The balloons are put up at the teams working place. Each
task correspond to a balloon of a different colour. If possible, get
balloons filled with helium. At a large site, you need one person just for
delivering the balloons. Kattis supports output for balloons, but it is also
advisable to keep paper documentation, especially regarding which team is
located where, and which team already got balloon for what).
</p>
<p>
Balloons are not mandatory.
</p>
<h3>Food (Optional)</h3>
<p>
If you can get funding, either from your department or the national
organisation, it is a good idea to serve some food either during or after
the contest. The easiest and cheapest is probably to buy coke at a
supermarket and have pizza delivered. If you serve the pizza during the
contest, check whether you are allowed to eat at the computers in the lab.
If not, check if there is somewhere close and accessible they can consume
their pizza. The easiest is maybe to serve the food after the contest, when
you go through the problems, give out prices etc.
</p>
<p>
Remember to keep receipts for all expenses.
</p>
<h3>Prizes (Optional)</h3>
<p>
Prices for the best local teams are not mandatory. Ask if your department
can fund it. A good option is books on programming and related topics.
</p>
<p>
If you want to, you could also make diplomas for the contestants.
<!-- FIXME discuss: It would be a convenient feature if diplomas could be
extracted directly from the online ICPC system. -->
</p>
<h3>Media (Optional)</h3>
<p>
The contact with media is usually handled by the national coordinator, but
if your department is interested in the publicity, it is a good idea to
notify the local media about the contest.
</p>
<h2>Technical information</h2>
<h3>Kattis</h3>
<p>
The on-line automated judge system <a href="https://open.kattis.com">Kattis</a> is used to run (judge) the contestants' programs (submissions).
Each contest is a single site on Kattis with a unique link. For example NCPC 2019 had the link <a href="https://ncpc19.kattis.com">https://ncpc19.kattis.com</a>.
More information about how Kattis works can be found on <a href="https://open.kattis.com/help">the help page</a>.
</p>
<!--
<p>
The systems only differ in a few respects: NCPC has a more restricted UI
and only gives a person information about her own submissions. On the
other hand, the UI does include functionality for asking questions and
getting answers.
</p>
<p>
Normally KATTIS is upp since it is used by several courses at KTH. NCPC
will most likely only be up twice this fall: once to test the system and
once to run the contest.
</p>
-->
<p>
The site director will get accounts for all the contestants the day
before the contest. The site director will also get 5 extra accounts
for last minute teams.
</p>
<!--
<p>
Thus, even if NCPC is not up, they can practice a lot on KATTIS. And you
can set up a practice session informally for your teams using problems
from KATTIS (there are a few hundred by now I think).
</p>
<p>
Pick the problems, have your teams submit solutions and watch the "Judge
status" page to see what happens with their submissions.
You won't get standings this way, and you have to manually check how
they do, but it has very little overhead for you.
</p>
-->
<h2>During the contest</h2>
Instructions regarding the competition day:
<ol>
<li>Make sure that each contestant account is reset and only contains
the sample input and output for all problems (will be distributed
with the problem set tomorrow). I suggest you create one directory
for each problem. At each work station place three copies of the
problem set in an envelop.</li>
<li>Read the rules and inform the contestants before the competition
about what is allowed and what is not. For example, it is not
allowed to use any other programming languages and code generation
tools besides the allowed languages. The teams are allowed to use those
shells, editors and IDEs that you provide them with. The contestants
may use the documentation provided in Kattis (including STL and Java
doc) as well as man pages if you have them.</li>
<li>Before the competition starts the contestants are allowed to log
in, start a browser, start an editor if they want and log in on
Kattis. Nothing else. No configuration files may be edited and
the problem set is not to be touched.</li>
<li>All contest directors should report to me that they are ready to
start the competition at the latest 10.50 Swedish time. If you have
problems please report those as soon as possible. You can report on
the IRC channel (irc.acc.umu.se#ncpc), through email
(fredrik.heintz@liu.se), or by calling me (+46-700-89 56 89). Since
there are many sites this year we will probably start the contest
even if one or two sites are silent. Unless something unexpected
happens KTH will make a countdown on the IRC channel and at 11.00.00
local KTH time the competition will start.
</li>
<li>When the contest is started the contestants are allowed to open the
problem set and start using the computer. Do your best to monitor
that they do not use any illegal programs or surf the web. All the
documentation that they are allowed to use is linked from their
Kattis account.</li>
<li>All clarifications are handled through Kattis. The head judge
is responsible for answering all clarifications. They might be
discussed on IRC if needed. If the answer is of general interest
then an email will be sent to all directors.</li>
<li>When the competition is over and the final result is ready, I will
announce it on IRC and to all directors by email. This is expected
to be shortly after 16.00 unless something unexpected happens.</li>
</ol>
<h2>After the contest</h2>
<h3>Ceremony (Optional)</h3>
<p>
After the contest, it is nice if you have a small ceremony where you
announce the results, and give out prices if you have any. If you have the
opportunity, you should also go through the problems.
</p>
<h3>Advancing teams to NWERC</h3>
<p>
In some countries, the best team is sponsored by the national organiser to go
to the regional finals. In addition, the large educational institutions
sponsor their best team. Check with your national organiser and your
department what is possible.
</p>
<p>
There are three scenarios if you (as a coach) are going to send team(s) to
NWERC:
</p>
<ol>
<li>You will only send team(s) that have competed in NCPC:<br/>
<b>Solution</b>: Use the promoting teams link on your site director part of
<a href="http://icpc.baylor.edu/">http://icpc.baylor.edu/</a>. If this
doesn't work - Inform the Contest Manager
(<a href="Roy.Andersson@cs.lth.se">Roy.Andersson@cs.lth.se</a>)
which teams you want to advance and he will take care of this.</li>
<li>You will send both team(s) that have competed in NCPC and other team(s)
that haven't:<br/>
<b>Solution</b>: Use the promoting teams link on your
site director part of
<a href="http://icpc.baylor.edu/">http://icpc.baylor.edu/</a> for the NCPC
teams. If this doesn't work - Inform the Contest Manager
(<a href="Roy.Andersson@cs.lth.se">Roy.Andersson@cs.lth.se</a>)
which teams you want to advance and he will take care of this. For the non
NCPC teams, just register them directly to the regional contest
(NWERC).</li>
<li>You will only send teams that haven't competed in NCPC:<br/>
<b>Solution</b>: Just register your teams directly to the regional contest
(NWERC).</li>
</ol>
<p>
<br /> <br /> <br /> <br />
Editor: <a href="mailto:exoji2e@gmail.com">Måns Magnusson</a><br />
</p>