SimSt - The Long Division Tutor
Last updated January 15, 2007
0. Download the example -- the Long Division Tutor
(1) Download an example tutor from here (2) To install, all what you need is to unzip the file. The example tutor is self contained -- it should work independent of any other tools / software. Note: This example tutor uses an alpha version of CTAT Ver.2, meaning it might be a good opportunity for you to practice the HCI issues on designing interactive systems -- please send us any comments and suggestions that you would have encountered throughout this tutorial. Also, please install (or unzip, if you will) the example tutor separate from CTAT. The example tutor has Java jar files for CTAT2, which might cause conflict with the existing CTAT, if you install them in the same place.
The full path the the SimStLDHW shouldn't have any spaces (' ') in it.
Good example: C:\CMU-class\CogModeling\SimStLDHW
Bad example: C:\CMU class\Cog Modeling and ITS\SimStLDHW
1. Launch the Long Division Tutor
(1) Go to the SimStLDHW directory. (2) Do one of the following depending on your platform:
For Window users Double click on the runTutor.bat file. If you have Cygwin installed, you can also run runTutor.sh as shown below For Mac users Open up a Terminal window, cd to the SimStLDHW directory, and issue "./runTutor.sh" at the command prompt. (3) If you see a pop-up window telling you there exists a production rule file, click [No] to continue the example. Generally speaking, however, you may want to do one of the following things.
Click [Yes] if you want to save the existing production rules. You'll see another dialogue box to specify a file name. Click [No] if you'd wish to discard the existing production rules.
Click [Cancel] if you want to keep the existing production rules. The Simulated Student then would read the production rules, and update them when you perform more demonstrations.
Again, for this example tour, please just click [No] if you see the above pop-up window.
(4) You should now see the CTAT window and the Student Interface for the Long Division Tutor CTAT window:
Student Interface for the Long Division Tutor
2. Activate the Simulated Student
(1) From the Tutor Mode menu, select "Simulated Student" to activate the Simulated Student
(2) Click on the "Behavior Recorder" tab. The Behavior Recorder panel shows a behavior graph, through which you can communicate with Simulated Student
(3) It might be a good idea to tell you other about other panels available in CTAT
Conflict Tree Shows rule activations for the current node. In other words, you can tell which rule is (or is NOT) activated and why. Part of such inquiry is answered by WhyNot tool. Clicking on a rule listed will opens up a WhyNot window. WME Editor Provides an access to the working memory elements. You can inspect & change the values of the current working memory elements. You can also create new working memory elements. Jess Console A interactive shell to communicate with Jess. You can issue Jess commands and get an immediate result. Simulated Student
ConsoleA central unit to control Simulated Student and get information from it.
3. Create Start State
(1) Let's try a simple problem first -- 5 divided by 3. Enter a dividend (i.e., 5), divisor (3), and a '/' that separates these two on the 2nd row of the table as shown below.
For the sake of explanation, please enter the exact same problem, which is "5 divided by 3," even when you have strong preference to play around your very own problem!
A few things you need to keep in your mind for this particular tutor:
- Always put "/" at the 4th cell from the left in the 2nd row
- Place a divisor (i.e., '3' for "5 divided by 3") left to the '/' aligning right, and place a dividend (i.e., '5' for "5 divided by 3") right to the '/' aligning left.
- A single cell contains a single digit. Thus, for example, for the problem of "17 divided by 3", place [3],[/],[1],and [7] in a row
- Always hit the Enter key or Tab key when you enter a digit in cell
(2) From the [Graph] menu, select "Create Start State"
(3) When "Input" dialogue window pops up, enter the problem name
Note: the problem name can only contain alphabetic characters, digits, +, -, and _.
(4) You should now see the start state in the Graph View
4. Demonstrate steps
To demonstrate a step, you need to do following things:
- Specify focus of attention
- Perform an action for the step
- Acknowledge feedback from Simulated Student
- Specify the name of the step (when necessary)
(1) Specify focus of attention You must specify all elements shown on the GUI (Graphic User Interface) that contribute to the step. Those elements are called focus of attention.
To specify focus of attention, double click on the target GUI element. You should see that they are highlighted with a blue box.
For this example, double click on "5" and "3" in this order.
(2) Perform an action for the step Now, do what you need to do. Just like building an Example-tracing Tutor, you need to perform an exact step here.
For this example, enter "1" in the 5th cell from the left in the 1st row and press the [Enter] key.
(3) Acknowledge feedback from Simulated Student When you demonstrate a step, the Simulated Student try to model trace the step with the production rules generated so far.
You see a pop-up window that tells if the attempt of model tracing was successful or not.
At the moment of the example, since there has been no production rules learned, the attempt should be failed hence you should see the following message.
Simply click [OK].
(4) Specify the name of the step (when necessary) Now you should see that the state1 has been created in the Graph View.
If you only see [sta...] instead of [state1], drag the [sta...] node a little bit. If you do not see [unnamed] box just above the [state1] box, then go to the [View] menu, and select the [Skill Names] option
You need to name each step you demonstrate. Do the following:
1. Click on [unnamed] box and select "Edit Skill Name"
2. When a pop-up window appears, enter "div" as the skill name and click [OK]
You should now see the following graph in the Graph View.
If you do not see the skill name changed on the graph even after the pop-up window disappears, then simply place your mouse cursor over the skill name box. Also, a list of production rules learned so far is available in the Simulated Student Console. Click on the [Problems] tab.
(5) If you can't stop wishing to know what kind of production rule has been generated for the step demonstrated ...
This completes the demonstration for a single step. Keep demonstrating all other steps until you solve the problem completely.
For this example, only two more steps to go! Now, perform the following:
(5) Specify focus of attention by clicking "1" and "3" in this order
(6) Enter "3" and hit the [Enter] key
(7) Acknowledge the Prod. System Check Message window by clicking [OK] (8) Click on the [unnamed] box and select "Edit Skill Name." Then, enter "mul" as the skill name.
(9) Specify Focus of Attention by clicking "5" and "3" in this order. Then, enter "2" immediately underneath.
(10) Acknowledge the Prod. System Check Message window by clicking [OK] (11) Click on the [unnamed] box and select "Edit Skill Name." Then, enter "sub" as the skill name.
(12) You should now see two complete steps in the Graph View just like this:
This completes the whole demonstration on the fist problem.
4. Save your demonstrations
You may want to save your demonstrations, and load it back to the Simulated Student in the future. This way, you don't have to provide the same demonstrations over and over again.
Indeed, you have to save two things to save your demonstration: a graph and an instruction. Explanations follow.
(1) Save the current graph If can save the above demonstrations, if you wish. To do so, click on [Yes] for the "Save Current Behavior Graph" pop-up window.
Check "Save to Another Location" on and click [OK]
Save a file wherever you like.
(2) Save "Instruction" -- storing what you did Now, wasn't it said that the Simulated Student is still under development? Yes, there is one extra thing that you must do when you wish to save your demonstration -- in other words, saving a graph in the above step does NOT save your demonstration.
For a historical reason, saving your demonstration is called "Save Instruction", which is available in the [SimStudent] menu in the CTAT main menu bar. Select "Save Instruction" from the [SimStudent] menu as shown below:
You can specify any type of file name in anywhere you like -- the extension of the file does not matter.
Select "Load Instructions" when you want the Simulated Student to learn the save skills with the same problem again.
5. Provide more demonstrations
At this very moment, the Simulated Student has learned three rules, which are called div, mul, and sub. So, if you demonstrate on a new problem that involve only those skills, the Simulated Student should be able to model trace steps demonstrated! Let's see if this is really the case.
Note: Pay extra attention not to make any mistake in your demonstration. You must be consistent in solving problem. So, do not make any mistake in demonstration, or the Simulated Student might get very confused. If you made a mistake, consult FAQ.
(1) Initiate a new problem Go to the [File] menu and select "New Graph"
(2) Create a new problem So far, the Simulated Student has learned three rules.
Thus, providing more demonstration is not only for the Simulated Student to learn, but also for you to test if the production rules have been learned correctly -- if you perform those three skills on a similar problem, they must be successfully model traced.
Let's try "9 divided by 2" as the next problem.
Do not forget to create a start state
Name the start state as you like.
(3) Perform the 1st step (for the skill "div") Double click on "9" and "2" in this order, and then enter "4". Make sure to hit the [Enter] key to proceed.
You must be consistent in the way to specify focus of attention. You have specified two elements of focus of attention. Since you are demonstrating on the same skill, give the exact same focus of attention here. This time, you should see affirmative feedback from the Simulated Student saying that an attempt for model tracing was successful.
Also confirm that the expected skill name ("div") is shown in the Skill Name box.
(4) Perform the 2nd step (for the skill "mul") Okay, then try the 2nd skill -- mul.
To specify focus of attention, double click on "4" and "2". Then, enter "8" as the product of 4 and 2. This step must be model-traced by the rule "mul."
Now, wait a second!! The Simulated Student gives you a negative feedback again!
(5) Inspect the incorrect production rule (optional) When you see unexpected response from the Simulated Student, you may want to know what kind of production rule has been learned.
You can inspect production rules with the "Conflict Tree" tool.
Click on the "Conflict Tree" tab.
Identify the production rule that you'd like to inspect -- in this case, the rule "mul" should have been matched.
Click on the red x for the rule of interest. In this example, it is the top x in the third column (labeled "I").
Now, you see that the production rule "mul" was suggesting to enter "0" where as you have entered "8".
It may be very confusing, but the "Student" in the above figure means you, not the Simulated Student. The "Rule" is indeed what the Simulated Student expected for you to do. You may feel much better by replacing "Rule" with "Model" and "Student" with "Actual." Now, you must be very curious why "0"?
Close the above window by clicking [OK]. And then, click on the rule name (which, of course, is "mul").
The "Why not?" window must pop-up.
The top pane shows an actual production production rule that has been learned. The bottom half shows the bindings for each variable in the production rule. (Don't worry if you have no idea what I'm talking about... You wanted to use the Simulated Student because you did not like to read the tasteless production rules, anyways)
Scroll down the top pane to the very end
The production rule says to enter the quotient of ?val1 (which is 2) divided by ?val0 (which is 4), which is indeed 0!!
Remember what you were demonstrating? It was 5 divided by 3 where you had entered "3" to demonstrate the skill "mul." Ah huh! That "3" could be the result of 3 divided by 1!
It is not demonstrated in this example, but that the step was "successfully" model traced means there is a production rule that has been matched with the step demonstrated. Note that this does not necessarily mean that the matched production rule is correct. (6) Correct the incorrect production rule Now, you know that the rule "mul" is not correctly learned. You must tell Simulated Student that the step that has been just demonstrated should be model traced with "mul."
Go back to the Graph View (by clicking on the "Graph View" tab).
Let's specify the skill name.
Once the "Edit Skill name" window is poped-up, enter the skill name for the state2. This time, you can select a name from the pull down menu. This is indeed recommended to avoid a spell miss!
This signals the Simulated Student to relearn the "mul" production rule.
(7) Keep demonstrating more steps and more problems. Now you know all essential things to play with the Simulated Student. Go on and provide more demonstrations.
If you start to demonstrate a new problem, say, "4 divided by 8", you'd see that all three steps are correctly model traced.










































