To have an adaptive outer loop, you could choose one of Tutorshop's built-in problem selection algorithms or you could implement your own. You specify the algorithm in the Selection Algorithm field on the problem set's Settings page, shown below. In all cases, Tutorshop invokes the algorithm when the student begins and when the student has completed each problem in the problem set: the algorithm chooses the next problem from this problem set to present to the student.
- Two of Tutorshop's built-in problem selection algorithms use skills for adaptivity. In CTAT, you can associate a step with one or more skills by using the Hints/Skills tab in the Link Editor on the behavior graph link proper to that step. When a student attempts to answer any step associated with skills, CTAT uses the attempt evaluation (correct or incorrect or hint) to recalculate P-Known, the probability of mastery, for each skill associated with that step. Tutorshop considers a skill mastered when this probability exceeds 95%.
- With the Mastery Learning selection algorithm, Tutorshop will choose a next problem that could advance the student farthest toward mastery of all the skills required by the problem set. For example, if the problem set requires skills A, B and C and the student's probabilities of mastery are 80%, 60% and 40% respectively, then this algorithm would choose a next problem that exercises all 3 skills, with the goal of giving the student the opportunity to advance farthest toward completion by performing well in this next problem.
- With Mastery Learning - Easier First, Tutorshop will choose a next problem that addresses the student's skill or skills closest to mastery among the unmastered skills required by the problem set. Using the example above, this algorithm would choose a next problem that exercises only skill A, the skill that the student appears to know best already.
- Two of Tutorshop's other Selection Algorithm settings let you invoke your own algorithm to choose the next problem to present to the student. In both cases, the API is documented on this Github page, TutorShop Interface to Custom Problem Selectors.
- With External Selection, Tutorshop will invoke a Linux program (for example, a program written in Python) that you would supply and we would install on the Tutorshop server machine. The program is expected to read Tutorshop's input data from stdin and write its output data to stdout, both in the JSON format described on the Github page just cited. Set the Selection Command on the problem set's Settings page to the Linux shell command needed to execute your program.
- With Remote Selection, Tutorshop will make an HTTP POST request with its JSON input data as the request payload and expect a response of the form described on the Github page. Set the Selection Command on the problem set's Settings page to the URL for this HTTP request. The URL may be hosted on any server, wherever you install your algorithm.
For all algorithms, if you set the Initial Sequence count on the problem set's Settings page to N, then all students will begin with the first N problems in the problem set. The problem selection algorithm will choose the N+1st and later problems.
For your specific case, I recommend you start by creating multiple problems with differing graphical representations and use an adaptive outer loop. Unless you already have an implementation of your algorithm, I suggest you try using skills with Tutorshop's Mastery Learning - Easier First algorithm. You might tag steps in your first 3 problems with the initial skills students need, then tag steps in problems with the more advanced graphical representations with these skills plus additional skills. With Tutorshop's default values for 4 skill parameters, mastery can be reached with about 3 straight correct answers. Note that mastery is recalculated only on a student's first attempt at a step: if a first answer is incorrect, e.g., skill probabilities will change accordingly, but later answers on that same step will not trigger further changes. You might consider adding the CTAT Hint Widget to your student interface if you wish to show hints and skills.