[contestms] Re: Interactive Assignements

  • From: Stefano Maggiolo <s.maggiolo@xxxxxxxxx>
  • To: contestms <contestms@xxxxxxxxxxxxx>
  • Date: Thu, 25 Feb 2016 16:00:07 +0000

Hi George, sorry this slipped down my inbox while I was travelling :)

I'm glad to hear that CMS helped you save time! If you want, we can add it
here <https://cms-dev.github.io/testimonials.html>!

Let's talk about interactive tasks.

The first assumption is that you have a secret in the input file you do not
want contestants to have access to. If you don't than it is really a
"batch" tasktype with an additional interface that declares the function
that the students can call to get more data (for example). If you do, you
want to split the input reading and the contestant's code in two different
processes for safety.

The second assumption is that you don't have too many back and forth
between the two processes - if you have more than O(10k) communications,
the running time starts to be dominated by the communication itself, and
detecting the complexity of the solution by setting an appropriate time
limit becomes hard. If you start being in the millions of communications,
the running times becomes too high even if you don't want to discriminate
different complexities. If you this assumption is not true, you might want
to use a batch tasktype again with great care in scrambling the information
in the input file, in your grader's memory, and in the output file, and
even then security is not too high.

If both assumptions hold, you can use a Communication task type. An example
is at https://github.com/cms-dev/con_test/tree/master/communication. The
first file you need to provide is an executable (in that example comes from
manager.cpp) called "manager", which will become the process reading the
input and writing the output. Inputs and outputs need not to be scrambled
as you are in total control of the process there.  The second (set of) file
is stub.c/cpp/...
<https://github.com/cms-dev/con_test/tree/master/communication/sol>, that
is the interface for the contestant solution, and deals with i/o from and
to the manager. Of course, this must have no access to privileged
information, and must not be trusted (as the contestant can easily take
over).

During IOI 2015 I did a presentation on different task types for CMS, which
I promised to upload somewhere and then never did. You can look at it here
<https://docs.google.com/presentation/d/1wBVv3ZM76wzBPIdhYa7GjONNu_DNvNNYShk7yTWGHdU/edit>
(and
make sure to look at the speaker notes), it might be useful.

Hope this helps, please follow up with more questions!


On 14 February 2016 at 07:53, George Michael <contestms@xxxxxxxxxxxxxx>
wrote:

Good evening to all!

My name is George Michael and I am a member of the organizing committee of
the Cyprus Informatics Olympiad.

I would like to thank you for the ContestCMS as it has proven to be an
invaluable tool to us.
We are currently using it for our local competitions and the results are
great!
The students are familiar with it and get accustomed to it very fast.
Also, the committee has a much easier task in maintenance operations.

I would like your input on a certain issue: we want to create an
interactive assignment this year.
Does anyone have a guide on how to properly configure one ?

Thank you for your time!

Regards,
George


Other related posts: