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.