]> mj.ucw.cz Git - moe.git/blob - doc/index.html
2083c13c8a19620df48b878c4e2b9480e1ab7eb3
[moe.git] / doc / index.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">
2
3 <html><head>
4 <title>The Moe Contest Environment</title>
5 <link rev=made href="mailto:mj@ucw.cz">
6 <link rel=stylesheet title=Default href="moe.css" type="text/css" media=all>
7 </head><body>
8
9 <h1>The Moe Contest Environment</h1>
10
11 <p>The Moe Contest Environment (formerly MO-Eval) is a system for conducting
12 programming competitions similar in spirit to the
13 <a href="http://www.ioinformatics.org/">International Olympiad in Informatics</a> &ndash;
14 contestants solve programming tasks, submit the source code of their solutions,
15 which is then automatically tested on a set of test inputs.
16
17 <p>Moe is built in a modular way, making it easy to adapt it to the specifics
18 of a particular contest, to other types of tasks, or other programming languages.
19
20 <p>A brief description of the system and of the ideas behind it can be found in the following two papers
21 published in <a href="http://www.mii.lt/olympiads_in_informatics/">Olympiads in Informatics</a>:
22
23 <ul>
24 <li><a href="http://mj.ucw.cz/papers/eval.pdf">Perspectives on grading systems</a>
25 <li><a href="http://mj.ucw.cz/papers/eval2.pdf">Moe &ndash; Design of a Modular Grading System</a>
26 </ul>
27
28 <h2>Modules</h2>
29
30 <table class=modules>
31 <tr><th>module
32     <th>description
33     <th>status
34 <tr><td>sandbox
35     <td>Runs the contestant's solution in a controlled and secure environment,
36         limiting its execution time, memory consumption and system calls.
37     <td class=statedone>works
38 <tr><td>judges
39     <td>A set of utilities for comparing the solution's output with the correct
40         answer at a given level of strictness.
41     <td class=statedone>works
42 <tr><td>evaluator<br>(a.k.a. grader)
43     <td>This module controls the whole process of grading the solution. It runs
44         the compilers, the sandbox and the judges as described in configuration
45         files.
46     <td class=statedone>works
47 <tr><td>evaluator v2
48     <td>We have decided to rewrite the evaluator from scratch in Python for greater
49         flexibility. It will however need some more time to finish.
50     <td class=statewip>in progress
51 <tr><td>queue manager
52     <td>Distributes grading between a cluster of computers, each of them running
53         the evaluator.
54     <td class=statepart>works, but needs revision
55 <tr><td>submitter
56     <td>Handles submitting of solutions by contestants and passing them to the
57         evaluation system. Contains a server daemon and a front-end for contestants.
58         (If your contest uses a web-based contestant interface, you probably do not
59         need this, although it can serve as a clean interface between your web services
60         and the evaluator.)
61     <td class=statepart>works, but needs revision
62 </table>
63
64 <h2>Download</h2>
65
66 <p>Moe is still under heavy development, so the best way to obtain the latest
67 version is directly from our <a href="http://git.or.cz/">Git</a> repository at git://git.ucw.cz/eval.git.
68 The master branch of the repository is kept in a stable state, new development
69 is done on other branches and then merged to the master. You can also <a href="http://www.ucw.cz/gitweb/?p=moe.git;a=summary">browse
70 the repository online</a>.
71
72 <p>We occasionally publish snapshot tarballs in our <a href="ftp://ftp.ucw.cz/pub/mj/eval/">FTP archive</a>.
73
74 <h2>Documentation</h2>
75
76 <p><span class="statewip">Warning:</span> Most parts of this documentation are outdated. Please consult the papers above
77 to get a more up-to-date picture.
78
79 <ul>
80 <li><a href="anatomy.html">Anatomy of MO-Eval</a>
81 <li><a href="install.html">Installation</a>
82 <li><a href="tasks.html">Tasks and their types</a>
83 <li><a href="eval.html">Evaluating solutions</a>
84 <li><a href="public.html">Utilities for contestants</a>
85 </ul>
86
87 <h2>Contests</h2>
88
89 <p>Moe (or some of its modules) are used at the following contests:
90
91 <ul>
92 <li><a href="http://mo.mff.cuni.cz/p/index.html.en">Czech Olympiad in programming</a> since 2002
93 <li><a href="http://mo.mff.cuni.cz/cpspc/">CPSPC</a> (Czech-Polish-Slovak Preparation Camp) on some years
94 <li><a href="http://www.fi.muni.cz/ceoi/">CEOI 2007</a> (Central-European Olympiad in Informatics)
95 <li><a href="http://www.ioi2009.org/">IOI 2009<a> (used the sandbox module)
96 <li><a href="http://codex2.ms.mff.cuni.cz/project/">CodEx</a> (a web-based system, originally
97         designed for evaluation of students' homeworks, but also used for several programming
98         contests)
99 </ul>
100
101 <h2>Languages</h2>
102
103 <p>Moe is known to work with these programming languages:
104
105 <ul>
106 <li>Pascal (<a href="http://www.freepascal.org">Free Pascal Compiler</a>)
107 <li>C and C++ (<a href="http://gcc.gnu.org/">GCC</a>)
108 <li>C# (<a href="http://www.mono-project.com/">Mono</a> with some hacks)
109 <li>Haskell (<a href="http://www.haskell.org/ghc/">GHC</a>)
110 </ul>
111
112 <p>Adding a new language should be easy, as long as the language behaves in a sane
113 way (e.g., if it does not need to use a zillion threads for a trivial program
114 as Java does).
115
116 <h2>Portability</h2>
117
118 <p>Moe is developed and tested on Linux, but all modules except the sandbox should
119 happily work on any UNIX-like system providing a reasonable set of GNU
120 utilities (especially bash) and Perl. This probably includes MinGW or Cygwin
121 on Windows, but we have not tested that.
122
123 <p>The sandbox heavily depends on the target OS. The current version works
124 only on Linux with kernel version 2.6 or newer and only on the i386 and amd64
125 architectures. Porting to other architectures should require only minor changes,
126 porting to other systems is likely to be hard.
127
128 <h2>Authors</h2>
129
130 <p>Moe has been written by the following people:
131
132 <ul>
133 <li><a href="http://mj.ucw.cz/">Martin Mare&scaron;</a>, <a href="mailto:mj@ucw.cz">mj@ucw.cz</a>
134 <li>Tom&aacute;&scaron; Gaven&#269;iak (the queue manager module and parts of the new evaluator)
135 </ul>
136
137 <p>We are also thankful to Jan K&aacute;ra and Milan Straka for their help and for
138 many fine ideas.
139
140 <h2>License</h2>
141
142 <p>Moe can be used and distributed under the terms of the <a
143 href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License version 2.</a>
144
145 <h2>Feedback</h2>
146
147 <p>All bug reports, suggestions and patches are welcome. Please mail them to our mailing
148 list <a href="mailto:moe@ucw.cz">moe@ucw.cz</a>. You can <a href="http://www.ucw.cz/mailman/listinfo/moe">ask
149 the list server</a> to subscribe to this list.
150
151 </body></html>