Building adaptive blocks based on performance and reaction time in Opensesame
Hi! First of all, thank you for creating such amazing experiment builder software that is so intuitive and versatile!
Now onto my issue. I am attempting to create a math verification task intended for students aged 7–17. So, in order to make the task suitable for such a large age range, I have created 7 blocks of trials of ascending difficulty per block. Yet, I don't want all the students to be given all 7 blocks of trials. I want to make the experiment exhibit a specific range of blocks based on the subject's reported age (e.g., subjects at age 7 get blocks 1, 2 and 3, subjects at age 9 get blocks 2, 3 and 4 etc.).
I also want to make the blocks adaptive based on subjects' performance and reaction time. For example, a 9-year-old would ordinarily be administered blocks 2, 3 and 4. I would like my experiment to evaluate performance and reaction time on block 2, and if the performance is below standard, the subject would be administered block 1 (easier) instead of block 4.
I am finding it quite difficult to make this plan a reality in the experiment builder and would really appreciate any feedback on that matter.
I understand all this might sound a bit confusing and am willing to provide more information if necessary.
Thanks in advance,
Tryfonas
Comments
Hi @Tryfonas_Bikos,
From your description, I think that what you'll need is a combination of coding (in Python or in Javascript), using the "Run if" condition of sequences and the "break if" funciton of a loop.
In a nutshell, you'd want to list your different loops (one per difficulty level) within a higher loop where you have as many rows as difficulty levels. You want to make that loop cycle many times and set the "brek if " funciton to some variable you programmatically change the value of under certain conditions (for exemple when a participant of age A finishes a certain level L).
You'd want to set th "run if" of each of the leve loops so that it only ruins a level condition if it is appropriate at a specific time and if no condition is met to break out of the loop.
I put together a very basic example where participants must judge whether simple arithmetic operations are correct (y) or not (n), withy 5 levels of difficulty. Subjects aged 7 start at level 1 and stop at level 4. Subjects over 8 start at evel 2 and finish with level 5. For all particpants, if the response to level 2 is incorrect, the next problem is from level 1.
This is a very basic example and you'll need to adapt it to your needs. Most likely you'll need to program some more complex code, but hopefully this example will get you going as it describes the general logic and structure you could use. this example is programmed in Open Sesame 4.
Hope this helps,
Fabrice.