Dragoon-Lab / topomath

TopoMath: a web-based algebra tutor
http://topomath.asu.edu
GNU Lesser General Public License v3.0
3 stars 0 forks source link

Redesign step table #579

Open vanlehn opened 4 years ago

vanlehn commented 4 years ago

Currently, the step table doesn't consider changing the fields on the equation node to be steps. Instead, it just records a single step when the node is closed that sets the "value" property of the node to the equation. This is how dragoon works, and it hasn't been updated since dragoon. We need to update the step logging so that it records a step each time a field of the equation node changes.

Currently, the step table assumes that all fields are entered by the student, so all field changes are entered in the step table as steps. this isn't accurate. When an equation node is closed, variable nodes are created and the description fields are filled in correctly. Thus, when an equation node is closed and there are 3 slots, 7 steps are entered: 2 for each variable (to create the node and to set its description field) and 1 for setting the equation field of the equation node. What we need to do is continue to enter the 2 steps per variable node, but mark them as done automatically by the system rather than being done by the user. There is a Json property, "solutionProvided" but it is used for marking values that are provided by yellow feedback. We might be able to use that, but it could screw up the counting done by the dashboard. Maybe not, tho. If we can use it, that would be cleaner than providing a new Json property. As for the 7th step that appears now when a node is closed, that will be replaced by a set of steps indicating when the field of the equation are changed.

For example, suppose the student creates an equation node, sets the schema field to DRT, sets the relationship field to Jack, closes the node, then opens the equation node again, and closes it again. Then the steps are:

  1. create equation node
  2. set its schema field to DRT
  3. set its relationship field to Jack
  4. close the equation node.
  5. Create the DJack variable node automatically
  6. Set the desciption field of the DJack node automatically
  7. Create the RJack varaible node automatically
  8. set the description field of the RJack node automatically
  9. Create the TJack node automatically
  10. Set the description field of the TJack node automatically
  11. open the equation node
  12. close the equation node

I"m not sure whether opening and closing the nodes should be logged as steps, because they don't modify the model. For now, only include steps that modify the model. (Ignore node movements, etc.)