Download BACHELOR THESIS

Transcript
2. Code Examiner
Before implementing an application, it would be appropriate to look at already
existing applications with the same goals and analyse their merits and faults.
However, even extensive Internet search revealed no reference to such an
application. Fortunately, there is a similar project developed right at the Faculty of
Mathematics and Physics of Charles University in Prague (MFF UK), that has been
released just recently. Its name is Code Examiner (CodEx) and its properties are
describe in full in [1]. CodEx also deals with management of homework assignments,
but it is focused on programming courses, and problems in programming courses
form a very specific class of problems from the correction point of view.
Generally, homework is "simple"; there is one set of input data and the task is to
find the corresponding output. What is specific about programming problems is the
fact, that their "input" is a whole class of input data sets. The solution of a
programming problem is a program able to find the corresponding output for any
input from the defined class. While going over the solution of a "simple" problem
should provide an accurate notion whether it is correct or not, programming
problem solutions usually need to be "tested", i.e. run on multiple sets of input data
prepared with potential solution flaws in mind. Automation of testing is the main
focus of CodEx.
There are many similarities between CodEx and the proposed AMS. CodEx is an
application that allows teachers to post homework problems, set up correction
mechanisms, and assign problems to students with specific deadlines. Also, it allows
students to hand in their solutions and have them automatically corrected. But in
spite of the similarities, the focus of AMS is quite different from the focus of CodEx.
The differences between the model scenario used by CodEx and the scenario used by
AMS (further referred to as the "proposed scenario") are described below.
2.1 Lecturer & Tutor vs. Group Owner
The first notable difference is the fact that CodEx recognizes only a single unified
“group owner” instead of the proposed two-tiered teacher hierarchy (lecturer-tutor).
In CodEx, problems are created by group owners as either "public" or "private",
where the public ones can be used by any group owner while the private ones can be
used only by their creator. This scenario is simpler, which is obviously beneficial. On
the other hand, its drawback is the lack of support for multiple parallel courses, each
containing multiple groups of students. As a consequence, it is impossible to share
problems between the groups inside a single course while not exposing them to
other courses. This drawback can be bypassed by having a separate instance of
9