Theoretical Tasks on Algorithms; Two Small Examples

In the Dutch Olympiad in Informatics theoretical subtasks are used to tests some of the skills needed for algorithmic design. The results were somewhat discouraging. An analysis for future use of theoretical tasks is performed. The second round of the Dutch Olympiad in Informatics (Dutch, 2012) is very selective; we want to identify the top ten students, but we also intend to offer a fair competition in which contestants can show what they are able to do in a few hours. It is usually created with two or three background stories, each leading to several subtasks (van der Vegt, 2009). The system of subtasks also makes it easier to slip in a more theoretical subtask. Once we asked contestants to create a sample input file that could produce a specified output for a given algorithm. We only asked for this file, not for a program or a description how to find it. At the IOI we call this an output only task; we had just an output only subtask. In another contest a game was played in which you could get stuck. One of the subtasks was to output the minimal number of moves that was at least possible, whatever the initial position of the game, and however badly the game might be played. We even predicted the output for a specific case and asked the contestants to explain this strange output in a few words. In this case, they had to deliver a plain text file. Of course this file was examined and graded manually. In this year's second round one of the background stories had to do with set partition- ing. There were eight subtasks; four of them were rather easy programming tasks, two were very hard programming tasks and the final two were tasks where contestants had to find a sample set of integers, fitting with the problem statement. This paper addresses the choice for such theoretical tasks, founded in the aims of a programming contest like the informatics olympiad. We will also discuss the results of last year's theoretical questions, and formulate a few recommendations for the future use of this kind of subtasks.