___________________________________________________________________________________________________________________ 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