Replaying MathDox exercises
Introduction
One of the applications of the MathdoxPlayer is to show, or
play, interactive exercises with multiple parts that
depend on answers that were given. These are different from a simple
exercise that only requires the user to enter one answer, which is then
checked for correctness. When making an exercise with multiple parts,
called interactions, the student can be shown
several interactions depending on the answers he has given so far.
For such an exercise with multiple interactions it is not enough to store
only a single answer. If a student or teacher later wants to see what was
entered, more information needs to be stored. A student might want to see
the exercise again to change his answer, or to check if another answer
would have been correct. For a teacher it is interesting to know where
students made mistakes and what paths they took through a multipart
exercise.
It can therefore be useful to be able to display (parts of) exercises that
have been made before. This is called replaying of
exercises.
Which information needs to be stored
The Mathdox Player uses content information to make a presentation of an
exercise, which is shown to the student. The content information
contains information about the exercise, information about variables that
are set, the current interaction and the last answer entered. This then
is used to create a MathDox page, which is transformed to HTML, both of
which could be considered the presentation.
The information needed for replaying can be stored as content or as
presentation information. The advantage of storing the content
information is that it is easier to allow other things then just
replaying old exercises, like continuing an exercise with a different
answer. The disadvantage of this is that changing the methods to generate
the presentation, might change the result as well. This is the case when
the exercise gets modified later or if the results are replayed in a
significantly modified player.
The information currently stored for replay is content information, that
is information about the variables, the current interaction, and the
answers that were submitted. This means that the replayed exercise might
not look the same as the original if the exercise or player has been
modified in the mean time.
The information about the variables in the exercise, the current
interaction and the answer that were submitted is present in the so
called instance together with information about the
exercise. Furthermore some additional information needs to be stored to
group the interactions of an exercise together. Each time an exercise is
played it gets an unique identification code, which will then be the same
for its interactions and can be used for this purpose. To store the order
of the interactions, a time stamp is recorded as well.
If an exercise is played from an LMS, then it might also be useful to
store information about the student when it becomes available. In this
way it would also be possible to store which user, from which school has
played the exercise and the score, if the student was given one at the
end.
Replaying as implemented now
As mentioned in the previous section, at the moment replay is implemented
by storing content information. It is possible to replay the page as
shown to the student and also to continue the assignment from a stored
interaction. How this can be done is explained in this section.
The current implementation of replay is that of a proof of concept. The
layout is functional, but could easily be improved. A lot of
functionality is already present or could be easily added.
A list of the exercises and their interactions is available from
/mathdox/replay. On this page a table is displayed showing the
exercise filename, the information identifying the session and the
position in the session, the timestamps, some information about the
navigation through the interactions and the chosen open answer, if
applicable.
An image of the list of exercises and their interactions.
The list of exercises and their interactions as shown in a browser.
After clicking on a session and position, the user goes to another view.
In this view a single interaction is shown. To the top two buttons are
added to navigate forward and backward between interactions. The
interactions with all forms filled in as they where when they were
submitted.
It is possible to continue an exercise by pressing a button in the
interaction. If a value in the form has been changed then this will be
used instead of the old, recorded value. When such a replayed exercise is
continued, then a new session identification is generated and a copy will
be made of the interactions up to that point with that session
identifaction. Then the exercise will be submitted and can be continued
as would be the case without replaying.
Replaying an exercise, interactions 1-4
This is an example of how the replay of a simple exercise looks. The
student is asked to add 1 and 2.
an image of the first interaction shown in the session
Entering an answer.
The student has apparently entered
4
. If the replayer clicks the next
-text or
next
-button, he will see what the feedback was, that the
student got when he submitted that answer (see below).
an image of the second interaction shown in the session
That answer was wrong.
And as expected, the answer,
4
, was wrong. Further we can see the student try again.
an image of the third interaction shown in the session
Let's try again.
This answer looks more like it. Look below to see if the student got
indeed a positive feedback.
an image of the fourth interaction shown in the session
That is correct and the exercise continues, but this example stops
here.
Unfortunately no information about which student is making the exercises
is used yet. Furthermore there is no authentication, which enables
everyone to replay all exercises. These are problems which should be
solved before replaying can be used by students.
Possible other ways to replay
The current replay can be extended by giving more information: show
information about the score when starting this interaction and also about
the time spent in this interaction. Both of this can be added easily.
It might be useful to add other overviews of replaying, but at the moment
it is not clear which these should be or what information should be
contained in them.