Programming Contests Seminar
I will organize a seminar every week to address
some issues concerning programming contests.
The seminars are intended both for contest participants and
contest organizers.
Schedule: Thursdays at 16:00. I will stay till 17:30.
Announcements will be distributed via the mailing list
prog-contest-l@gewis.win.tue.nl (see Tom's Contests Page).
- 17/9 in HG 8.61
Worked on BARS (IOI'95, spare).
- 24/9 in HG 8.61
Worked on WORD CHAINS (IOI'95, spare), PARTY LAMPS (IOI'98).
- 2/10 (Friday) in HG 8.61
Worked on TRIANGLE (IOI'94), CASTLE (IOI'94), SORTING THREE VALUES (IOI'96).
- 8/10 in HG 6.37
Discussion.
- 15/10 in HG 8.61
Practice contest for 5 hours.
- 22/10 in HG 6.37
Discussed NKP'98 and problem set of West European Reg. Prog. Contest 1994-95
- 29/10 start in HG 6.37
The set partition problem (number and traversing all).
- 5/11 start in HG 6.37
Practiced on the CERC'98 problem set.
Each seminar will consist of:
- A short presentation on a particular contest-related theme.
- A practical part where we work, either individually or as teams,
on some programming problems.
- A discussion of the results.
I would also like the seminar group to put together `nice' solutions to
interesting contest problems.
Here are some of the topics to be considered.
For Participants
- Contest Formats
- Selecting an order to solve problems
- Problem analysis (read and read again)
- Performance issues and non-issues
- Deciding on an approach
- Communication, coding standards
- Defensive programming
- Literature to bring
- Personal Software Process, know thy weaknesses
- Testing: review, checklist, compile and run for examples, test data
- Traps
- Know thy tools
- Practice, practice, practice, ...
- Teamwork
in Programming Contests: 3*1=4 by
Fabian Ernst, Jeroen Moelands, and Seppo Pieterse;
appeared in Crossroads,
Issue 3.2 (Winter 1996).
For Organizers
- Guidelines for Producing
a Programming-Contest Problem Set
[ PDF ]
- Requirements
- Planning
- Selection
- Writing a problem description
- Investigating the solution space, avoiding shortcuts
- Fine-tuning the bound parameters (input size, time limit, memory limits)
- Producing input test data
- Automatic validation of input data
- Evaluation, automatic verification of output data
- Batch versus reactive programming problems, other alternatives