Return to the List Learning Task page
___________________________________________________________________________________________________________________	

										LIST LEARNING TASK
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 02-16-2017
last updated:  10-09-2019 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 10-09-2019 Millisecond Software

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

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
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)

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	
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.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 20 minutes to complete (15 minute break included in this estimate)

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________	 
The default data stored in the data files are:

(1) Raw data file: 'listlearningtask_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
script.sessionid:					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 such as feedback trials. Thus, trialnum 
										may not reflect the number of main trials run per bloc
																				
										
values.count_immediateRounds:counts the number of immediate recall trials run
values.count_allRecallRounds:	counts the number of ALL (immediate + delayed) recall trials run
values.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)
values.Recall:						stores the recall text input (with single commas to separate the different words)
values.countCorrect_Recall:		tracks the number of correctly recalled words per trial

values.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.
										
values.nr_otherRecalledWords:	stores the number of other recalled words that are not list words

values.intrusionOther:			stores the character strings contained in the recall string that are not list words
										Note: misspelled study words will show up here
										
values.word1_recall-
values.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)*

computer.platform:				the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:					assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:				time it took to run script (in ms); measured from onset to offset of script
script.completed:					0 = script was not completed (prematurely aborted); 
									1 = script was completed (all conditions run)

expressions.recallScore:		sum of all correctly recalled items across the 4 IMMEDIATE recall trials (Max: 40)
expressions.delayedRecallScore:number of correctly recalled items during delayed recall (Max: 10)

values.recognitionScore:		the number of words correctly identified (Max: 20);
										Note: combines 'hits' and 'correct rejections'

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

expressions.Recall1:				number of correctly recalled words on list 1
expressions.Recall2:				number of correctly recalled words on list 2  
expressions.Recall3:				number of correctly recalled words on list 3  
expressions.Recall4:				number of correctly recalled words on list 4 

expressions.prop_word1Recall-
expressions.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
									
expressions.meanIntrusions:		mean number of intrusions on recall lists (recalling words that were not on the list)

Recall ALL:								
values.trial1_recalledWords-
values.trial4_recalledWords:	stores the list of the recalled words for trial1, trial2, trial3, trial4 (IMMEDIATE RECALL)

values.delayedRecall_recalledWords:	stores the list of the recalled words for the delayed recall trial								

values.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 

expressions.r_hits_recognition:	hit rate during recognition (hit => participant categorized old word as 'old')
expressions.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)

expressions.z_hr_recognition:	z-score of hit rate
expressions.z_fr_recognition:	z-score of false alarm rate

expressions.dprime_recognition:	Computes d' (parametric measure of discriminability)
											=> The higher the value, the better signals (old list stimuli) were overall distinguished 
											from noise (new stimuli) (d' = 0: chance performance)

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


___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________

(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.

Steps:
(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

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

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
are provided by Millisecond Software - change 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:

Response Keys: -> see Tools->Keyboard Scancodes
/oldKey:				scancode of the "old key" responsecode (default: 21) 
/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