User Manual: Inquisit Anagram Riddle Task (ART)


___________________________________________________________________________________________________________________	

								Anagram Riddle Task (ART)
___________________________________________________________________________________________________________________	


Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 09-06-2024
last updated:  11-27-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 11-27-2024 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements Millisecond Software's version of the Anagram Riddle Task,
a performance based measure of persistence based on Ventura et al (2013).

Reference:											

Ventura, M., Shute, V., & Zhao, W. (2013). The relationship between video game use and 
a performance-based measure of persistence. 
Computers and Education, 60(1), 52–58. 
https://doi.org/10.1016/j.compedu.2012.07.003
___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________

Participants are presented with 4 randomly order of sets that consist of anagrams and riddles.
They have 2 minutes for each task and can submit as many solutions as they want to within that
timeframe until they get the correct response or are timed out. They also get a 'Skip' button.
Once they submit the Skip button, the problem ends and the next one starts.
___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 30 minutes to complete.
The maximum duration is 48 problems x 2 minutes = 96 minutes.

___________________________________________________________________________________________________________________	
DATA OUTPUT DICTIONARY
___________________________________________________________________________________________________________________		
The fields in the data files are:

(1) Raw data file: 'XXX_raw*.iqdat' (a separate file for each participant)

build:						The specific Inquisit version used (the 'build') that was run
computer.platform:			the platform the script was run on (win/mac/ios/android)
date, time: 				date and time script was run 
subject:					with the current subject id
group: 						with the current group id
session:					with the current session id

blockCode, blockNum:		the name and number of the current block (built-in Inquisit variable)
trialCode, trialNum: 		the name and number of the currently recorded trial (built-in Inquisit variable)
								Note: trialNum is a built-in Inquisit variable; it counts all trials run; even those
								that do not store data to the data file. 
								
problemSetOrder:			the order in which the problem sets (A,B,C,D) are presented
							(Note: decided during runtime)

problemSetName: 			"A", "B", "C" or "D"
problemCountPerSet:			tracks number of problems per set
 
index: 						the index of the currently presented problem
problemType: 				"anagram" vs. "riddle"
problem: 					the actual problem presented
problemSolution: 			the problem's solution
problemDifficulty:			"easy" vs. "hard"

problemRT: 					time (in ms) spent on the problem
currentSuggestion: 			the current suggested solution
guesses: 					number of guesses

acc: 						1=correct solution; 0 = otherwise

skip: 						1 = question was explicitly skipped; 0 = otherwise

skipCounterPerSet: 			tracks the number of explicit skips per set
skipCounterTotal: 			tracks the number of explicit skips across all sets

TO:							1 = question was timed out; 0 = otherwise							
								
///////default DV variables:
response:					the response of participant (scancode of response button)
correct:					correctness of response (1 = correct, 0 = error)
latency:					response latency (in ms); measured from: onset of trial


(2) Summary data file: 'xxx_summary*.iqdat' (a separate file for each participant)

inquisit.version:			Inquisit version run
computer.platform:			the platform the script was run on (win/mac/ios/android)
startdate:					date script was run
starttime:					time script was started
subjectId:					assigned subject id number
groupId:					assigned group id number
sessionId:					assigned session id number
elapsedTime:				time it took to run script (in ms); measured from onset to offset of script
completed:					0 = script was not completed (prematurely aborted); 
							1 = script was completed (all conditions run)	
							
problemSetOrder:			the order in which the problem sets (A,B,C,D) were presented							

countAnagramsEasy:			number of Easy Anagrams presented across all test blocks
skipAnagramsEasy:			number of Easy Anagrams explicitly skipped
propCorrectAnagramsEasy:	proportion of correct Easy Anagrams (relative to total number of Easy Anagrams presented)
meanRTAnagramsEasy:			mean time (in ms) spent on Easy Anagrams
meanCorrRTAnagramsEasy:		mean correct solution time (in ms) for Easy Anagrams
meanSkipRTAnagramsEasy:		mean skip time (in ms) for Easy Anagrams (if skipped)

countAnagramsHard:			number of Hard Anagrams presented across all test blocks
skipAnagramsHard:			number of Hard Anagrams explicitly skipped
propCorrectAnagramsHard:	proportion of correct Hard Anagrams (relative to total number of Hard Anagrams presented)
meanRTAnagramsHard:			mean time (in ms) spent on Hard Anagrams
meanCorrRTAnagramsHard:		mean correct solution time (in ms) for Hard Anagrams
meanSkipRTAnagramsEasy:		mean skip time (in ms) for Hard Anagrams (if skipped)

countRiddlesEasy:			number of Easy Riddles presented across all test blocks
skipRiddlesEasy:			number of Easy Riddles explicitly skipped
propCorrectRiddlesEasy:		proportion of correct Easy Riddles (relative to total number of Easy Riddles presented)
meanRTRiddlesEasy:			mean time (in ms) spent on Easy Riddles
meanCorrRTRiddlesEasy:		mean correct solution time (in ms) for Easy Riddles
meanSkipRTRiddlesEasy:		mean skip time (in ms) for Easy Riddles (if skipped)

countRiddlesHard:			number of Hard Riddles presented across all test blocks
skipRiddlesHard:			number of Hard Riddles explicitly skipped
propCorrectRiddlesHard:		proportion of correct Hard Riddles (relative to total number of Hard Riddles presented)
meanRTRiddlesHard:			mean time (in ms) spent on Hard Riddles
meanCorrRTRiddlesHard:		mean correct solution time (in ms) for Hard Riddles
meanSkipRTRiddlesHard:		mean skip time (in ms) for Hard Riddles (if skipped)
							
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

(1) Instruction

(2) Test: 4 problem sets (A,B,C,D) - order randomized (Note: Ventura et al (2013) counterbalanced the orders)
Each problem set presents:
- 7 anagrams (problem sets A/B present them first)
- 5 riddles (problem sets C/D present them first)
=> across all problem sets
- 28 anagrams (14 easy, 14 hard)
- 20 riddles (10 easy, 10 hard)

Trial Sequence:
- problem presentation (textbox + skip button + guess button) for Max: 2 Min (editable parameters)
- unlimited guesses (with error feedback for 500ms) within the time limit
- skip button can be pressed and submitted (via 'guess' button) at any point

Evaluation:
- Timed-out Responses:
	=> if the response is timed out, 
	whatever answer may still be lingering unsubmitted in the textbox
	is still considered for evaluation.
	Thus, if a person solved the anagram but ran out of time to press the 'guess' button,
	the unsubmitted correct response is counted as correct in this script.
	This applies even if the skip button was selected at time of time-out (a skipped trial is only one
	that was *explicitly* skipped via 'guess' button submission in this script).
	A timed-out response ends the current trial. Any trial that is timed-out and is not evaluated
	as correct (see below), receives a 'timed-out' response for 500ms

- Skip Button Submission:
	=> Once the skip button is selected and EXPLICITLY submitted via 'guess' button, 
	the trial will be counted as 'skipped' and the response is automatically evaluated as incorrect.
	Any skip-submission ends the current trial.
	
- Correct Solutions:
	=> any correct response that is explicitly submitted via the 'guess' button or is left-over in the
	textbox for a timed-out trial receives a 500ms 'correct' feedback and ends the trial

- Incorrect Solutions	
	=> an incorrect submitted response within the time limit results in a 500ms 'error' feedback
	penalty in this script before being returned to the textbox page for another attempt

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

provided by Ventura et al (2013) - can be edited under section 'Editable Stimuli'
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

provided by Ventura et al (2013) - can be edited under section 'Editable Instructions'
___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are:

//timing parameters
/ problemTimeOutMS = 120000			//the time (in ms) allotted for each problem
/ feedbackDurationMS = 500			//the time (in ms) used up for each problem feedback stim

//ui
/ showTimer = true					//true: a countdown timer is presented on screen for each problem
									//false: the countdown timer is not presented on screen