User Manual: Inquisit Corsi Block Tapping Task


___________________________________________________________________________________________________________________	

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

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

last updated:  10-11-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC
Script Copyright © 10-11-2022 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.
	
	The default setup is optimized for touchscreen devices sized like an ipad but adapts to mouse use on 
	non-touchscreens.  By default, the stimuli are absolutely sized if the current screen size is 
	big enough - if not, the script uses the largest 4:3 portion of the current screen (e.g. smartphone screen) 
	that it can find.
	
	Absolute sizing of stimuli can easily be turned off or adjusted via parameter settings.	
	
	
	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 FILE INFORMATION 
___________________________________________________________________________________________________________________
The default data stored 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
										
										
//Screen Setup:
(parameter) runAbsoluteSizes:		true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm)
									false (0) = should use proportionally sized canvas (uses width = 43*screenHeight)
								
canvasAdjustments:					NA: not applicable => parameters- runAbsoluteSize was set to 'false'
									0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough
									1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and 
									adjustments had to be made

activeCanvasHeight_inmm:			the width of the active canvas (by default: lightGray area) in mm 
activeCanvasWidth_inmm:				the height of the active canvas in mm 
display.canvasHeight:				the height of the active canvas in pixels
display.canvasWidth:				the width of the active canvas in pixels

px_per_mm:							the conversion factor to convert pixel data into mm-results for the current monitor
									(Note: the higher resolution of the current monitor 
									the more pixels cover the same absolute screen distance)
									This factor is needed if you want to convert pixel data into absolute mm data or the other way around
										
										
										

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)

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)
									
									
//Screen Setup:
(parameter) runAbsoluteSizes:		true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm)
									false (0) = should use proportionally sized canvas (uses width = 43*screenHeight)
								
canvasAdjustments:					NA: not applicable => parameters- runAbsoluteSize was set to 'false'
									0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough
									1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and 
									adjustments had to be made

activeCanvasHeight_inmm:			the width of the active canvas (by default: lightGray area) in mm 
activeCanvasWidth_inmm:				the height of the active canvas in mm 
display.canvasHeight:				the height of the active canvas in pixels
display.canvasWidth:				the width of the active canvas in pixels

px_per_mm:							the conversion factor to convert pixel data into mm-results for the current monitor
									(Note: the higher resolution of the current monitor 
									the more pixels cover the same absolute screen distance)
									This factor is needed if you want to convert pixel data into absolute mm data or the other way around
									
									
									

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 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.
The default setupis optimized for touchscreen devices sized like an ipad but adapts to mouse use on non-touchscreens.
	
Is the current screen NOT big enough for the specified blocksizes, the script uses the largest 4:3 portion 
of the current screen (e.g. smartphone screen) that it can find.
	
Absolute sizing of stimuli can easily be turned off or adjusted via parameter settings.
___________________________________________________________________________________________________________________	
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: