Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 16, 2022
Last Modified: January 17, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the 'Adams Task' - a problem solving paradigm investigating people's use of additive and subtractive changes to convert asymmetrical images to symmetrical ones.
Adams, G.S., Converse, B.A., Hales, A.H. et al. People systematically overlook subtractive changes. Nature 592, 258–261 (2021). https://doi.org/10.1038/s41586-021-03380-y
3 minutes
Participants are presented 10x10 grids made out of boxes of 2 different colors. The initial color pattern is asymmetrical and the task is to make the pattern symmetrical (left to right, top to bottom) with the fewest clicks possible (when clicked, each box reverses its color).
2 experimental conditions: 1) with practice: participants work through up to 3 practice problems before working on the test problem(s) 2) without practice: participants only work on the test problem(s) (no practice)
Assignment to the two experimental conditions is done via list.practiceProblems settings (see section Editable Parameters)
NOTES:
● Script can be run with 0-3 practice problems and 0-5 test problems for each participant
=> See section Editable Parameters for more info (look for list.practiceProblems/list.testProblems)
This script uses the matrices used in the original Qualtrics survey. However,
the matrices can be easily adapted under section Editable Stimuli
stimuli: https://osf.io/7v6r2/
(Qualtrics survey)
This script uses instructions used in the original Qualtrics survey
instructions: https://osf.io/7v6r2/
(Qualtrics survey)
see script adamstask_instructions_inc.iqjs
File Name: adamstask_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| 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 |
| expCondition | "practice" vs. "no practice" see section Editable Parameters |
| countPracticeTrials | Number of practice trials run |
| propCorrectPractice | Proportion correct practice performance (based on values.acc) |
| countTestTrials | Number of test trials run |
| propCorrectTest | Proportion correct test performance (based on values.acc) |
| test1Image | The image used for the 1. test problem run the number refers to ORDER in which the test problem was run Example: 'testA' was run as the 1. test problem |
| test1Acc | 1 = the final matrix for the 1. TEST problem is symmetric AND the fewest number of clicks were made to achieve symmetry 0 = otherwise |
| test1SolutionTime | Time (in ms) until participant clicked 'next' button for the 1. TEST problem |
| test1Symmetry | 1 = the final test grid for the 1. test problem was symmetric; 0 = otherwise |
| test1MinClicks | Stores the minimum number of clicks to achieve symmetry for the 1. test matrix |
| test1AddClickCounter | Stores the number of Addition - Clicks made on the 1. test grid |
| test1SubtractClickCounter | Stores the number of Subtraction - Clicks made on the 1. test grid |
| test2Image | The image used for the 2. test problem run (IF RUN) Example: 'testA' was run as the 2. test problem |
| test2Acc | 1 = the final matrix for the 2. TEST problem is symmetric AND the fewest number of clicks were made to achieve symmetry 0 = otherwise |
| test2SolutionTime | Time (in ms) until participant clicked 'next' button for the 2. TEST problem |
| test2Symmetry | 1 = the final test grid for the 2. test problem was symmetric; 0 = otherwise |
| test2MinClicks | Stores the minimum number of clicks to achieve symmetry for the 2. test matrix |
| test2AddClickCounter | Stores the number of Addition - Clicks made on the 2. test grid |
| test2SubtractClickCounter | Stores the number of Subtraction - Clicks made on the 2. test grid |
| test3Image | The image used for the 3. test problem run (IF RUN) Example: 'testA' was run as the 3. test problem |
| test3Acc | 1 = the final matrix for the 3. TEST problem is symmetric AND the fewest number of clicks were made to achieve symmetry 0 = otherwise |
| test3SolutionTime | Time (in ms) until participant clicked 'next' button for the 3. TEST problem |
| test3Symmetry | 1 = the final test grid for the 3. test problem was symmetric; 0 = otherwise |
| test3MinClicks | Stores the minimum number of clicks to achieve symmetry for the 3. test matrix |
| test3AddClickCounter | Stores the number of Addition - Clicks made on the 3. test grid |
| test3SubtractClickCounter | Stores the number of Subtraction - Clicks made on the 3. test grid |
| test4Image | The image used for the 4. test problem run (IF RUN) Example: 'testA' was run as the 4. test problem |
| test4Acc | 1 = the final matrix for the 4. TEST problem is symmetric AND the fewest number of clicks were made to achieve symmetry 0 = otherwise |
| test4SolutionTime | Time (in ms) until participant clicked 'next' button for the 4. TEST problem |
| test4Symmetry | 1 = the final test grid for the 4. test problem was symmetric; 0 = otherwise |
| test4MinClicks | Stores the minimum number of clicks to achieve symmetry for the 4.t test matrix |
| test4AddClickCounter | Stores the number of Addition - Clicks made on the 4. test grid |
| test4SubtractClickCounter | Stores the number of Subtraction - Clicks made on the 4. test grid |
| test5Image | The image used for the 5. test problem run (IF RUN) Example: 'testA' was run as the 5. test problem |
| test5Acc | 1 = the final matrix for the 5. TEST problem is symmetric AND the fewest number of clicks were made to achieve symmetry 0 = otherwise |
| test5SolutionTime | Time (in ms) until participant clicked 'next' button for the 5. TEST problem |
| test5Symmetry | 1 = the final test grid for the 5. test problem was symmetric; 0 = otherwise |
| test5MinClicks | Stores the minimum number of clicks to achieve symmetry for the 5. test matrix |
| test5AddClickCounter | Stores the number of Addition - Clicks made on the 5. grid |
| test5SubtractClickCounter | Stores the number of Subtraction - Clicks made on the 5. test grid |
File Name: adamstask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| expCondition | "practice" vs. "no practice" see section Editable Parameters |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| countPracticeTrials | Counter for the practice trials |
| countTestTrials | Counter for the test trials |
| image | "demo", "practice1/2/3", "test1/2/3/4/5" the number in the image file does not refer to the order in which it is run |
| fewestClicks | The fewest clicks needed to achieve symmetry for the current image |
| countClicks | The number of clicks made by participant |
| addClickCounter | The number of Addition clicks (Addition click = a click that turns a background color into the target color) |
| subtractClickCounter | The number of Subtraction clicks (Subtraction clicks = a click that turns a target color into a background color) |
| symmetry | 1 = the final matrix is symmetric; 0 = otherwise |
| acc | 1 = the final matrix is symmetric AND the fewest number of clicks were made to achieve symmetry 0 = otherwise |
| solutionTimeMS | The cumulative response times (in ms) until the 'next' button is pressed |
| response | The response of participant (box clicked or button pressed) |
| latency | Response latency (in ms); measured from: onset of trial |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
The Grid Colors |
||
| color1 | Background color ('subtract' color) | "white" |
| color2 | Target color ('add' color) | "lightgreen" |
Screencaptures |
||
| takeScreenCaptures | True: the script takes a screenshot of the final grids false: no screenshots are taken | false |