Return to the List Learning Task page

Script Author: Katja Borchert, Ph.D. ( for Millisecond Software, LLC
Date: 02-16-2017
last updated: 02-14-2018 by K.Borchert ( for Millisecond Software LLC

Script Copyright © 02-14-2018 Millisecond Software

Millisecond Software thanks Derrick Palma for his collaboration on this script!


This script implements a basic computer-adapted list learning task inspired by the one used by
the Repeatable Battery for Neuropsychological Status (RBANS).
The script presents the list visually and accepts written input.

Adjustments to z-scores as described by:
Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility:
Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161 (p.148)

Participants are presented a list of 10 words (fixed sequence), one at a time, on the computer screen.
Once the list has finished, a textbox appears and participants are asked to enter as many of the list words 
as they remember, in any order. The list learning/recall task is repeated 3 more times before a break (default: 15min).
After the break, participants work through through an optional delayed recall test and a recognition task: 
20 words are presented to them, one by one, and participants have to decide whether the word was part of 
the original list (if so, press Y) or not (if so, press N).
10 of the words are list words, the other ones are new distractor words.

The default data stored in the data files are:

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

build:							Inquisit build
computer.platform:				the platform the script was run on
date, time, subject, group:		date and time script was run with the current subject/groupnumber 
blockcode, blocknum:			the name and number of the current block
trialcode, trialnum: 			the name and number of the currently recorded trial
									(Note: not all trials that are run might record data; by default data is collected unless /recorddata = false is set for a particular trial/block) 
/count_immediateRounds:			counts the number of immediate recall trials run
/count_allRecallRounds:			counts the number of ALL (immediate + delayed) recall trials run
/wordCategory:					1 = old word (word on list); 0 = new word (during recognition)
stimulusitem:					the presented stimuli in order of trial presentation
stimulusnumber:					the itemnumber of the presented stimuli in order of trial presentation
response:						the participant's response
correct:						the correctness of the response (1 = correct; 0 = incorrect)
latency: 						the response latency (in ms)
/Recall:						stores the recall text input (with single commas to separate the different words)
/countCorrect_Recall:			tracks the number of correctly recalled words per trial
/RecallWordEstimate:			stores the computer-derived estimate of the number of words recalled
									Note: see below of algorithm implemented. Algorithm does not check whether the recalled words are actual words.
/nr_otherRecalledWords			stores the number of other recalled words that are not list words
/intrusionOther:				stores the character strings contained in the recall string that are not list words
									Note: misspelled study words will show up here
/word10_recall:					stores the number of times the first (second, third, etc) word of a list was recalled									

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

script.startdate:				date script was run
script.starttime:				time script was started
script.subjectid:				subject id number
script.groupid:					group id number
script.elapsedtime:				time it took to run script (in ms)
computer.platform:				the platform the script was run on
/completed:						0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run)
/recallScore:					sum of all correctly recalled items across the 4 IMMEDIATE recall trials (Max: 40)
/delayedRecallScore:			number of correctly recalled items during delayed recall (Max: 10)
/recognitionScore:				the number of words correctly identified (Max: 20);
								Note: combines 'hits' and 'correct rejections'

immediate Recall:
/mean_WordRecall:				mean of the estimated number of words recalled (IMMEDIATE RECALL only)- independent of recall accuracy
/meanRecall:					mean number of correctly recalled words per list (IMMEDIATE RECALL only)

/Recall1:						number of correctly recalled words on list 1
/Recall2:						number of correctly recalled words on list 2  
/Recall3:						number of correctly recalled words on list 3  
/Recall4:						number of correctly recalled words on list 4 
/prop_word10Recall:				stores the recall proportion of words in study positions 1 - 10 across the number of IMMEDIATE recall rounds
								(Max: 4/4 for each item)
								Example: word 1(here: market) => word in list position 1 was remembered x out of 4 times during immediate recall
/meanIntrusions:				mean number of intrusions on recall lists (recalling words that were not on the list)

Recall ALL:								
/trial4_recalledWords:			stores the list of the recalled words for trial1, trial2, trial3, trial4 (IMMEDIATE RECALL)
/delayedRecall_recalledWords:	stores the list of the recalled words for the delayed recall trial								

/recallIntrusions:				a storage variable that stores all recall intrusion words across the 4 immediate (+ delayed) recall trials
									Note: check for misspelled words here and adjust scores accordingly 
/r_hits_recognition:			hit rate during recognition (hit => participant categorized old word as 'old')
/r_FAs_recognition :			false alarm rate during recognition (false alarm => participant categorized new word as 'old')

Note: z-score calculations: adjustments (see Gregg & Sedikides, 2010, p.148)
If the hit rate / FA rate is 0 => 0.005 is used instead (aka 0.005 is added to the hit/FA rate)
IF the hit rate / FA rate is 1.0 => 0.995 is used instead (aka 0.005 is subtracted from the hit/FA rate)

/z_hr_recognition:				z-score of hit rate
/z_fr_recognition:				z-score of false alarm rate
/dprime_recognition:			Computes d' (parametric measure of discriminability)

* separate data files: to change to one data file for all participants (on Inquisit Lab only), go to section
"DATA" and follow further instructions


(I) 4 blocks: List Learning/Recall Task
- the words are presented with a 2s SOA in the middle of the screen
- the order of the words is predetermined and the same across all 4 blocks
- after an editable delay (default: no delay), a textbox appears and prompts participants
to enter all the words they remember (self-paced)

Recall Task: Scoring Algorithms
Algorithm to estimate number of recalled words:
In general this algorithm uses the number of a specific word separator (here: comma)
to estimate the number of words in between the separators: estimated word count = number of separators + 1
The algorithm uses several steps to clean up the text input to ensure as much as 
possible that only single commas are used as word separators. It also removes
trailing commas from the input if necessary.

(1) textbox response is stored in values.Recall (Example: values.Recall = "bed; chair; table") (note: there is a space AND a ; after bed and chair)
(2) values.Recall replaces 7 types of possible word separator symbols (e.g. ";", " ") with a comma (Example: values.Recall = "bed,,chair,,table")
(3) values.Recall adds a comma to the first item (Example: values.Recall = ",bed,,chair,,table")
(3) values.Recall replaces all consecutive commas with a single comma (Example: values.Recall = ",bed,chair,table")
(4) if values.Recall does not end in a comma at this point, this comma is added (Example: values.Recall = ",bed,chair,table,")
(5) the length of the variable values.Recall is stored in variable values.RecallLength (Example: values.RecallLength = 17)
(6) a second variable (values.reducedRecall) deletes all commas in values.Recall (Example: values.reducedRecall = "bedchairtable" => length: 13)
(7) the word count estimate = length of values.Recall* - length of values.reducedRecall - 1 (extra comma) (Example: estimate = 17 - 13 - 1 = 3)
		*with length = number of characters 

Note: the recall scoring algorithms implemented in this script depend on participants 
(a) using the implemented separators
(b) make no spelling mistakes
(c) don't use phonetically similar words (e.g. pain instead of pane)
Manual checks of the raw data might be necessary to adjust the scores (see values.intrustionOther)

(II) Break (default: 15min)

(III) optional: Delayed Recall Task

(IV) Delayed Recognition Task
- 10 list words and 10 new words are presented randomly (to change to a fixed order, go to text.recognitionWord)
- self-paced

uses the words of the Repeatable Battery for Neuropsychological Status (RBANS)
edit under section Editable Stimuli

are provided by Millisecond Software - change under section Editable Instructions

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:
/oldKey:				scancode of the "old key" responsecode (default: 21) -> see Tools->Keyboard Scancodes
/oldKey_label:			label of the "old key" response key (default: "Y")
/newKey:				scancode of the "new key" responsecode (default: 49)
/newKey_label:			label of the "old key" response key (default: "N")

/wordSize:				proportional sizing of study words (default: 8% of canvas height)

/wordSOA:				the stimulus onset asynchrony (in ms) of the presented study words (default: 2000ms)
/recallDelay:			the delay (in ms) between last presented study list word and the recall trial (default: 0ms)
/MinRecognitionDelay:	the minimum delay (in ms) between end of last trial and the recognition task (default: 15min)

/runDelayedRecall:		optional delayed recall task after the break
						true (1): delayed recall task is run (default)
						false (0): delayed recall task is skipped

Copyright © Millisecond Software. All rights reserved.
Contact | Terms of Service | Security Statement | Employment