Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 26, 2014
Last Modified: January 31, 2023 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Visual Scanning Task; a visual search and recognition task designed to assess Perceptual Speed.
UNIFIED TRI-SERVICE COGNITIVE PERFORMANCE ASSESSMENT BATTERY (UTC-PAB) I. DESIGN AND SPECIFICATION OF THE BATTERY. ENGLUND, C.E., REEVES. D.L., SHINGLEDECKER, C.A., THORNE, D.R., WILSON, K.P., & HEGGE. F.W. (1987). REPORT NO. 87-10, NAVAL HEALTH RESEARCH CENTER, P 0 BOX 85122, SAN DIEGO, CALIFORNIA 92138 NAVAL MEDICAL RESEARCH AND DEVELOPMENT COMMAND, BETHESDA, MARYLAND (p.39)
Which was inpired by: Neisser, U. (1963). Decision time without reaction time: experiments in visual scanning. American Journal of Psychology, 76:d376-385.
10 minutes
Participants are presented with a letter matrix consisting of 25 rows of 5 letters each. The task is to read the matrix from top to bottom, left to right and find and select the target letter 'K' within 10s (default). Optional feedback can be provided before the next trial sequence is started. If the time limits is exceeded, the current trial sequence is terminated, a beep is played, and new trial sequence is started.
script VisualScanning.iqjs runs the same task with keyboard input instead.
default set-up:
Practice:
- 1 block of 21 trials (Englund et al, 1987, suggest 10 -> edit parameters.nr_trainingblocks under section 'Editable Values' )
Test:
- 2 (default) blocks or max. 5 min (default), whichever comes first (editable values under section 'Editable Values')
- each block runs 21 trials (target in each of the 21 possible row locations)
Trial Sequence:
(A) trial.fixation: fixation arrow for 500ms (default)
Fixation arrow is presented one field to the left of the first matrix item (it's a preparatory time & location cue)
(B) trial.matrix:
presents 25 rows x 5 column matrix randomly filled with all letters of the alphabet
targetletter: K (only 1 K present in matrix); position is randomly determined with the constraints that it cannot be presented in the first 3 rows and the last row (Englund et al, 1987).
10s (default) to find K
=> click on K
(C) trial.feedback/trial.beep:
-trial.feedback (optional) presents feedback regarding the performance and the location of K
-trial.beep: presents beep if time limits were exceeded
the letters are presented in Courier New (a monospaced font)
Letter size can be adjusted under Editable Parameters if needed.
Letters are white on a black background.
Instructions are based on Englund et al (1987).
They are provided by Millisecond in the form of html pages
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
File Name: visualscanning_mi_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 |
| maxTestBlocks | Maximum number of blocks to be run (e.g. 20) |
| countBlocks | Counts the number of test blocks started |
| remainingTaskTime | Stores how much time is left for another block in ms (updated at the end of each block) test is over if either countblocks = (parameter) maxTestBlocks OR if remainingtasktime <= 0 |
| countTrialsStarted | Counts all trial sequences that got started by script (though trial sequence might have been cut-off before any response could have been given) |
| countAttemptedTrials | Counts all attempted trials (across test blocks) |
| countCompletedTrials | Counts all trials (across test blocks) in which participants input a row number |
| countLateMatrix | Counts how many times participant was late with selection response |
| countCorrect | Counts all correct trials (across test blocks) |
| propCorrect | Proportion correct responses out of all attempted test trials |
File Name: visualscanning_mi_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 | Participant ID |
| group | Group number |
| session | Session number |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| phase | "practice" vs. "test" |
| countBlocks | Counts the number of test blocks started |
| stimulusItem | Presented stimuli |
| targetrow | The row that contains the target |
| targetCode | Contains the target box e.g. r16c3 |
| response | The participant's response (the selected box) |
| responseCode | Stores the response code "correct" "incorrect" (input was wrong) "late matrix response" (participants took too long select K) |
| correct | The correctness of the response |
| latency | The response latency in ms |
| matrixRt | Stores the latency of the selection response in ms |
| countTrialsStarted | Counts all trial sequences that got started by script (though trial sequence might have been cut-off before any response could have been given) |
| countAttemptedTrials | Counts all attempted trials (across blocks) attempted: responsecode is set to four response options |
| countCompletedTrials | Counts all trials (across blocks) in which participants input a row number (responsecode is either correct or incorrect) |
| countLateMatrix | Counts how many times participant was late with selection response |
| countCorrect | Counts all correct trials (across blocks) |
| propCorrect | Proportion correct responses out of all attempted ones |
| remainingTaskTime | Stores how much time is left for another block (updated at the end of each block) |
| maxBlockDuration | Stores the maximum block duration time that is still available for the current block (in ms) |
| blockStartTime | Stores the elapsed time at the start of each new block in ms |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| fontSizeLetters | Fontsize of the letters in screen height percentages | 2.5% |
| fontSizeFixation | Fontsize of the fixation mark in screen height percentages | 3% |
| maxTestBlocks | Maximum number of test blocks to be run (e.g. 2) | |
| nrTrainingBlocks | Number of training blocks to be run Englund et al (1987) suggest to run 10 (p.43) | 1 |
| maxTaskTime | Maximum duration of the task in ms | 300000ms => 5min |
| showFeedback | 1 = feedback is provided after 2nd digit row input 0 = no feedback is provided ( if responses were too late a beep is played in either condition) | |
| fixationDuration | Duration of the fixation trial in ms | 500ms |
| matrixDuration | Maximum duration of the matrix presentation in ms | 10000ms => 10s |
| posttrialDuration | Time allotted between letter selection and next fixation cross in ms this duration is used to present (optional) feedback and the beeps |