Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 07, 2017
Last Modified: January 27, 2023 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a 'Keep Track Task'; a test of executive functioning focusing on continuously updating working memory representations.
The implemented procedure is similar to the one outlined by:
Friedman, N.P., Miyake, A., Young, S.E., DeFries, J.C., Corley, R.P., & Hewitt, J.K. (2008). Individual Differences in Executive Functions Are Almost Entirely Genetic in Origin. Journal of Experimental Psychology: General, 137, 201-225.
The Friedman et al (2008) task is in turn based on: Yntema, D. B. (1963). Keeping track of several things at once. Human Factors, 5, 7–17.
15 minutes
Participants need to mentally update the state of key categories while watching a sequence of 15 words that belong to 6 different categories. Before the presentation, participants are told the specific categories to keep track of and these target categories are displayed on screen throughout the presentation. The number of target categories to keep track of (of the 6 possible) varies from round to round (default in this script: 2-4). At the end of each round, participants are asked to enter the last item presented for each of the target categories.
1. Practice Session
• by default, the practice session runs 3 rounds with difficulty level increasing from 2-4
=> number of rounds as well as their difficulty level can be adjusted by editing list.difficulty_practice
under section Editable Lists
• per round:
• target categories are sampled randomly for each round (no balancing across rounds)
• each category is presented at least twice and at most three times within the 15 word presentations
(it's randomly determined for each round which category is represented three times - no balancing across rounds);
order of category presentation is randomized
• the particular exemplars presented for each category are sampled at random from the 6 provided options
(constraint: no repeats within the same round)
• after recall, participants receive detailed feedback of their responses
• by default, practice session can be repeated if no more than parameters.maxNumberOfPracticeSessions (default: 2) have been run yet
(change settings under section Editable Parameters)
2. Test Session
• by default, the test session runs 12 rounds with difficulty levels 2, 3, 4 (each difficulty level is repeated 4 times,
levels are randomly selected)
=> Total words that need to be recalled: 2x4 + 3x4 + 4x4 = 36
=> number of rounds as well as their difficulty levels can be adjusted by editing list.difficulty_test
under section Editable Lists
• per round:
• target categories are sampled randomly for each round (no balancing across rounds)
• each category is presented at least twice and at most three times within the 15 word presentations
(it's randomly determined for each round which category is represented three times - no balancing across rounds);
order of category presentation is randomized
• the particular exemplars presented for each category are sampled at random from the 6 provided options (see Editable Stimuli)
(constraint: no repeats within the same round)
• after recall, participants receive detailed feedback of their responses by default. However, feedback can easily be
turned off by setting parameters.skipTestFeedback to 'true' (default setting is 'false', see section Editable Parameters)
Note on Accuracy Checks of entered Responses:
1) all entered responses as well as target items (e.g. India) are converted to lower-case letters for comparisons
Example: presented item: India; entered item: india (evaluated as correct)
Example: presented item: bear; entered item: BEAR (evaluated as correct)
2) empty characters are removed from all entered responses before comparisons
Example: presented item: 'brother'; entered item 'brother ' (evaluated as correct)
Example: presented item: 'gold'; entered item ' g o ld ' (evaluated as correct)
Trial/Round Sequence (default settings):
presentation of target categories until spacebar is hit -> 500ms delay ->
word presentation 1 (1500ms) -> isi (0ms) -> word presentation 2 (1500ms) -> etc. ->
word presentation 15 (1500ms) -> isi (0ms) -> recall delay (0ms) ->
recall until 'submit' button is pressed -> iti (default: 1000ms)
this script provides the code to run any difficulty level btw. 1-6.
To change the number of rounds run and/or the levels of difficulty levels run, simply
change list.difficulty_practice and/or list.difficulty_test under section Editable Lists
categories: Friedman et al (2008)
exemplars: provided by Millisecond
By default, this script runs with 6 exemplars per category. That reduces the chance to guess
the correct exemplar (per category) at the end of each trial to p ~ 0.17.
specific categories as well as exemplars can be edited under section "Editable Stimuli"
provided by Millisecond - can be edited under section Editable Instructions
File Name: keeptracktask_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| countPracticeSessions | Running total of practice sessions requested |
| roundCount | Final count of test rounds run |
| totalCorrect | Stores the number of correctly recalled items across all test rounds |
| totalWordsRecalled | Stores the total number of words that needed to be recalled across all test rounds |
| propCorrect | The proportion correct of all possible test round responses (= number of correct responses across all test rounds / total number of responses = X/36 in this script) |
| meanPropCorrect | Mean proportion correct per round; based on propCorrect for each round (Example: 0.25 => on average, participant got 25% of all responses correct per test round, regardless of level of difficulty) |
| meanPropCorrect1 | Mean proportion correct for level 1 trials |
| meanPropCorrect2 | Mean proportion correct for level 2 trials |
| meanPropCorrect3 | Mean proportion correct for level 3 trials |
| meanPropCorrect4 | Mean proportion correct for level 4 trials |
| meanPropCorrect5 | Mean proportion correct for level 5 trials |
| meanPropCorrect6 | Mean proportion correct for level 6 trials |
File Name: keeptracktask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| date | Date the session was run |
| time | Time the session was run |
| subject, group, | With the current subject/groupnumber |
| session | Session number |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| countPracticeSessions | Running total of practice sessions requested |
| roundCount | Running total of the trials/rounds run; resets after each practice session |
| difficulty | Level of difficulty ( = number of categories to keep track of) |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| stimulusItem | The presented stimuli in order of trial presentation |
| currentTargetCategory | Stores the currently presented target category in digits 1-6 |
| targetCategory1 | Stores the label of the randomly selected target category1 |
| category1Last | Stores the last item presented for target category1 |
| targetCategory2 | Stores the label of the randomly selected target category2 |
| category2Last | Stores the last item presented for target category2 |
| targetCategory3 | Stores the label of the randomly selected target category3 |
| category3Last | Stores the last item presented for target category3 |
| targetCategory4 | Stores the label of the randomly selected target category4 |
| category4Last | Stores the last item presented for target category4 |
| targetCategory5 | Stores the label of the randomly selected target category5 |
| category5Last | Stores the last item presented for target category5 |
| targetCategory6 | Stores the label of the randomly selected target category6 |
| category6Last | Stores the last item presented for target category6 |
| response | The participant's response |
| latency | The response latency (in ms) recall trials: measured from: onset of recall-trial until all textbox responses are submitted via 'submit' button |
| countCorrect | Counts the number of correctly items per round (across all target categories) |
| propCorrect | Stores the proportion correctly recalled items per round (= countCorrect/difficulty) |
| correctCategory1 | 1 = last item of target category 1 was correctly recalled; 0 = otherwise |
| correctCategory2 | 1 = last item of target category 2 was correctly recalled; 0 = otherwise |
| correctCategory3 | 1 = last item of target category 3 was correctly recalled; 0 = otherwise |
| correctCategory4 | 1 = last item of target category 4 was correctly recalled; 0 = otherwise |
| correctCategory5 | 1 = last item of target category 5 was correctly recalled; 0 = otherwise |
| correctCategory6 | 1 = last item of target category 6 was correctly recalled; 0 = otherwise |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| exemplarSize | Proportional (to canvas height) size of exemplars | 8% |
| stimDelay | The delay (in ms) of the first exemplar presented after hitting spacebar | 500ms |
| stimDuration | Duration (in ms) of examplars on screen | 1500ms |
| stimISI | The duration (in ms) of a blank screen presented after each stimulus and before the next | 0ms |
| recallDelay | Additional delay (on top of stimISI) (in ms) of the recall trial after the last exemplar is presented | 0ms |
| iti | Intertrial interval (in ms) in between each round | 1000ms |
| maxNumberOfPracticeSessions | Maximum number of times participants can repeat the practice session if they choose to do so the script will run at least 1 practice session regardless of parameter setting | 2 |
| skipTestFeedback | True(1): participants only receive performance feedback after each round during practice (but not the test) false(0): participants receive performance feedback after each round during practice AND test (default) | |
| debugmode | True(1): the script is run in debugmode; a stimulus with all correct responses is presented with the textboxes during each recall trial false (0): the script is NOT run in debugmode (default) |