User Manual: Inquisit Corsie Block Tapping Task with Eye Tracking


___________________________________________________________________________________________________________________	

						Corsi Block-Tapping Task (Forward) - Eye Tracking
									(including normative data)
___________________________________________________________________________________________________________________

Script Author: David Nitz (dave@millisecond.com) for Millisecond Software, LLC (backward task)

last updated:  01-02-2025 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 01-02-2025 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
	This script implements the Forward Corsi Block Tapping Task; a measure of spatial working memory.
	The script provides normative data (Kessels et al, 2000)
	
	Note:
	The current script allows to run the Corsi Block Tapping Task with absolute stimulus sizing to ensure 
	that the size of the Corsi blocks (with a target box size ~3cm) as well as their distances are constant 
	across monitors. Check section Defaults for more info.	
	
	
	The implemented procedure is described in:

	Kessels, R.P.C., van Zandvoort, M.J.E., Postma, A., Kappelle, L.J., & de Haan, E.H.F. (2000).
	The Corsi block-tapping task: Standardization and normative data. Applied Neuropsychology,
	7(4), 252-258.

	Corsi, P. M. (1972). Human memory and the medial temporal region of the brain. 
	Dissertation Abstracts International, 34, 819B.

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
Participants are presented with a screen of 9 boxes. The boxes light up in a pre-fixed sequence (constant across participants)
and participants are asked to click on the boxes in the same order they were lit.
The sequence length starts at level = 2 boxes and can increase to up to level 9. Participants get 2 chances
at each sequence length. If one of the sequences was entered correctly, the next sequence starts. 

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 5 minutes to complete

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

(1) Raw data file: 'corsiblocktappingtask_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, group: 					with the current subject/groupnumber
session:							with the current session id

ageGroup:							stores the age group information IF parameters.runAgeQuestion is set to 'true'
									1: age <= 20; 
									2: 21 < age < 40; 
									3: age > 40
										Note: based on Kessels et al (2000, table3). Due to overlapping age brackets reported in Kessels
										et al (2000, table 3) for age group 1 and 2, in this script age group 1 includes age 20 
										and age group 2 starts at age 21

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 such as feedback trials. Thus, trialNum 
										may not reflect the number of main trials run per block.
											
seqnumber							The ordinal index number of the current block sequence. A maximum of 14 sequences are given in ascending order.
seqlength							Length of the current block sequence.
seqstring							The current sequence (forward)
respstring							The sequence entered by the participant (resets for each new sequence)
response							the response of the participant in a given trial
correct								'1' if the current sequence was recalled correctly. '0' if the participant made a mistake.
latency								the latency of the response (in ms)

eyetracker.lasttimestamp:			eyetracker timestamp

ncorrectinblock:					Holds the number of correctly recalled sequences in the current block.
									Sequences are given in blocks of two. The task stops as soon as the 
									participant fails to recall two sequences of equal length.
								
ncorrecttotal:						Total number of correctly recalled sequences across the whole task.(Max = 16)
blockspan:							The achieved Block Span. Equals the length of the last correctly recalled sequence (Max = 9)

totalscore:							Summary score proposed by Kessels et al. (2000). Computed as 
									'values.blockspan' * 'values.ncorrecttotal'.(Max = 9 * 16 = 144)
									

(2) Summary data file: 'corsiblocktappingtask_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)
									

ncorrecttotal:						Total number of correctly recalled sequences across the whole task.
									The achieved Block Span. Equals the length of the last correctly recalled sequence (Max = 9)
z_Blockspan:						the z-score of the obtained Blockspan with mean (6.2) and SD (1.3) (see Kessels et al, 2000, table 2)
p_Blockspan:						the percentile of the obtained Blockspan z-score

totalscore							Summary score proposed by Kessels et al. (2000). Computed as 'values.blockspan' * 'values.ncorrecttotal'.
z_Totalscore:						the z-score of the obtained Totalscore with mean (55.7) and SD (20.3) (see Kessels et al, 2000, table 2)
p_Totalscore:						the percentile of the obtained Totalscore z-score

ageGroup:							stores the age group information IF parameters.runAgeQuestion is set to 'true'
									1: age <= 20; 
									2: 21 < age < 40; 
									3: age > 40
										Note: based on Kessels et al (2000, table3). Due to overlapping age brackets reported in Kessels
										et al (2000, table 3) for age group 1 and 2, in this script age group 1 includes age 20 
										and age group 2 starts at age 21
										
										
p_Totalscore_byAge:					the interpolated totalscore percentile based on age (see Kessels et al, 2000, table 3)
									Note: only calculated if parameters.runAgeQuestion is set to 'true' (default)

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________
* predetermined sequence of boxes (see section Editable Lists)
* start level N=2 up to level 9
* 2 chances per level	

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
see section Editable Instructions

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

Note:
The current script runs the task with proportional sizing.
To change to absolute sizing, go to section Defaults and follow 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:

//color parameter
/ blockColor = blue					//Display color for blocks in unhighlighted state.
/ tapColor = yellow					//Display color for currently highlighted ('tapped') blocks.
/ boardColor = black				//Display color for the virtual game board.
/ boardFrameColor = white			//Frame color of the virtual game board (if presented, see parameters.hideCanvasFrame)
/ screenColor = dimGrey				//Color of the screen not used by the board (default: dimGrey)
/ defaultTextColor = white			//Default color of textitems

//CANVAS SIZING PARAMETERS
//sizing Parameters in RELATIVE measurements relative to CANVAS HEIGHT
//NOTE: to run the script with ABSOLUTE screen measurements, go to 'defaults' and set 
//canvasSize to absolute measurements

/ blockSize = 20%						//Size of blocks in % of canvassize.

//Timing Parameters	(in ms)						
/ tapInterval = 1000		//Interval between 'taps' in ms. Default is '1000'.
	
/ posttapInterval = 250		//Time between erasing a previously highlighted block and highlighting the 
							//next one in ms.
							
/ feedbackDuration = 1000	//Duration of performance feedback after recalling a sequence.

//Feedback Parameters
/ showFeedback = true		//'true' -> show performance feedback after each completed sequence.
							//'false' -> don't show performance feedback after each completed sequence.
							//Default is 'true'.
							
/ showScores = true			//'true' -> show score summary at the end of the procedure.
							//'false' -> don't show score summary at the end of the procedure.
							//Default is 'true'.

//Norming Paramaters
/ runAgeQuestion = true		//true (1): the user's age can be entered in a textbox before running the task (default)
							//false (0): no age information of the participant is sought