Making your own Learning-by-Teaching environment

To create a new tutor with SimStPLE:

1. Design Tutor - use DorminTables for entry items. If you wish SimSt to learn done, include a JCommButton and ensure that it is named done.

    • See here for details on creating a tutor interface.

2. (optional) Write new FoaGetter and SkillNameGetter for your interface, if you like. If you don't have FoaGetter, you must specify FoA by double clicking the GUI elements. If you wish SimSt to learn done, you need a SkillNameGetter that will return the done skillname. Otherwise if you don't have SkillNameGetter, it's just fine, but it slows down SimSt learning.

  • FoaGetters must extend FoaGetter and provide an implementation of the method public Vector foaGetter(BR_Controller brController, String selection, String action, String input, Vector dummy); which returns the vector list of the user interface objects that should be FOAs for the given SAI (selection, action and input)

  • SkillNameGetters must extend SkillNameGetter and provide an implementation of the method public String skillNameGetter(BR_Controller brController, String selection, String action, String input); which returns the skill name for the given SAI (selection, action and input)

3. Download and unzip the SimStPLEToolkit

4. Put your tutor interface code and FoaGetter and SkillNameGetter into the Tutor folder

5. Change the Tutor folder to your interface's package name

6. Update tutor, package, FoaGetter and SkillNameGetter name in files:

  • compileTutor.sh

  • runTutor.sh

  • runTutorCtat.sh

  • UserDefSymbols.java (package)

7. Run compileTutor.sh

8. Run runTutorCtat.sh and switch Ctat's Tutor Type to Cognitive Tutor (Jess). Create an empty start state called init. Save Jess facts and templates & close Ctat

9. In wmeTypes.clp add a (slot value) to MAIN::button

10 Open the file “wmeStructure.txt” and modify it based on your interface design. This file has 3 sections:

a. Section one: Parent - child WMEs

b. Section two: terminal WMEs

c. Section three: ignored WMEs

You should create a wmeStructure.txt file that corresponds to your interface. To identify the type of wme’s you have (e.g. parent-child or terminal), you have to open the file “wmeTypes.clp” and take a look at the Jess templates defined there. If a template contains a “multislot” value, then this template is a parent wme and the multislot is the child wme. For example if you on your wmeTypes.clp this template:

(deftemplate MAIN:table (slot name) (multislot columns))

then, this means that you should add an entry " MAIN:table – columns " in your wmeStructure.txt parent-child section.

Similarly, if you have an entry that does not have a “multislot” value on your wmeTypes.clp, e.g. like this:

(deftemplate MAIN:textfield (slot name) (slot value)),

this indicates a terminal wme and you should create an entry " MAIN:textfield ” in your wmeStructure.txt terminal section.

11. Change runTutor.sh to use your FoaGetter and SkillNameGetter or remove these lines

12. Update simSt-config.txt to fit your tutor:

  • startStateElements - the names of the GUI elements that are unlocked to enter the problem into the interface

  • componentNames - regular expressions for any GUI element names with the natural language descripts which should be used for them instead

  • quizProblems - equations to be solved in the quiz. Note that the quiz currently only works for solving algebraic equations

  • examples - different examples are separated by a line containing only a period. Put the explanation for the example that should show in the chat window after text:. Describe the values to fill in to the tables as follows: Table#Column#Row%What To Fill In

13. (optional) Replace IntroductionToSimStudent.avi with your own introduction video (by the same name). Avi codecs used must be supported by JMF

14. (optional) Run runTutor.sh if you wish to provide prior knowledge. Tutor SimStudent with the prior knowledge you wish used. Make certain to hit the Tutor Lucy Next Problem button one last time at the end to transition off of the last problem given. Close SimStudent and change the name of instructions.txt to instructions-9_initial.txt

15. Run runTutor.sh to use your PLE Tutor