Tower of London Task

Technical Manual

Script Author: David Nitz (dave@millisecond.com), Millisecond

Last Modified: January 20, 2025 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements the 'Tower of London' task (originally Shallice, 1982), an assessment of executive functioning with a focus on planning abilities.

References

Shallice, T. (1982). Specifc impairments of planning. Philosophical Transactions of the Royal Society of London, Biology, 298, 199-209.

Krikorian, R., Bartok, J., & Gay, N. (1994). Tower of London procedure: A standard method and developmental data. Journal of Clinical and Experimental Neuropsychology, 16, 840-850.

Anderson, P., Anderson, V., & Lajoie, G. (1996). The Tower of London test: Validation and standardization for pediatric populations. The Clinical Neuropsychologist, 10, 54-65.

Berg, W. K. & Byrd, D. L. (2002). The Tower of London spatial problem-solving task: Enhancing clinical and research implementation. Journal of Clinical and Experimental Neuropsychology, 24(5), 586-604.

Duration

10 minutes

Description

Participants are asked to arrange three colorful discs on 3 provided pegs in a specific solution pattern in as few moves as possible. They work through one practice problem before moving on to 12 test problems.

Procedure

1 Practice trial (problem with 2 moves)
12 Test trials (2 problems with 2 moves, 2 problems with 3 moves, 4 problems with 4 moves, 4 problems with 5 moves:
tested sequentially in fixed order)

Per Problem:
• no time limit
• reset button provided
• 3 attempts per problem to solve it given the max. number of moves. After failure to solve a problem in 3 attempts,
participants are moved to the next problem in the sequence (participants can also move ahead to the next problem
by clicking a 'next' button)

Stimuli

see section Editable Stimuli
(to re-create new target states, try EmptyPegs.pptx - provided by Millisecond)

Instructions

The task instructions were adapted from Anderson et al (1996).
See script 'toweroflondong_instructions_inc.iqjs'

Summary Data

File Name: toweroflondon_summary*.iqdat

Data Fields

NameDescription
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 script was run
starttime Time script was started
subjectid Assigned subject id number
groupid Assigned group id number
sessionid Assigned session id number
elapsedtime Time it took to run script (in ms); measured from onset to offset of script
completed 0 = Test was not completed
1 = Test was completed
totalScore Score achieved across the whole set of test problems.
Computed as the sum of individual problem scores. Maximum is 36 in the standard version.
meanSolutionTime The mean solution time (in ms) of all solutions with solutionTime > 0 (independent of accuracy of solution)
sdSolutionTime The standard deviation (in ms) of solution times of solutions with solutionTime > 0 (independent of accuracy of solution)
meanExecutionTime The mean execution time (in ms) of all solutions with solutionTime > 0 (independent of accuracy of solution)
sdExecutionTime The standard deviation (in ms) of all execution times of all completed solutions with solutionTime > 0 (independent of accuracy of solution)
meanPlanningTime The mean time (in ms) spent on planning; calculated as (meanSolutionTime-meanExecutionTime) with solutionTime > 0 (independent of accuracy of solution)
meanSolutionTimeCorrectSolutions The mean solution time (in ms) of all solutions with problemScore > 0
sdSolutionTimeCorrectSolutions The standard deviation (in ms) of solution times of solutions problemScore > 0
meanExecutionTimeCorrectSolutions The mean execution time (in ms) of all solutions with problemScore > 0
sdExecutionTimeCorrectSolutions The standard deviation (in ms) of all execution times of all completed solutions with problemScore > 0
meanPlanningTimeCorrectSolution The mean time (in ms) spent on planning of all completed solutions with problemScore > 0
countRule1Violations Sums up the number of times that Rule1 has been violated across all problems (Rule1="move only the top balls")
countRule2Violations Sums up the number of times that Rule2 has been violated across all problems (Rule2="don't move ball onto the position of another ball")
countRuleViolations Number of all rule violations across all problems
countFailedAttempts Sums up the number of failed attempts across all problems
failedAttempt: voluntary resets + pressing continue without solving the problem + too many moves

Raw Data

File Name: toweroflondon_raw*.iqdat

Data Fields

NameDescription
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
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.
response Response made (contains the last peg a disc was moved to or 0 for noResponse)
latency The latency of the response in ms (or if no response: trialduration)
trial.choice.lastDropLatency Time (in ms) between intialization of the last move and its completion; move execution time
trial.choice.lastDropSource The last moved disc (R, B, G)
trial.choice.lastDropTarget The last peg that a disc was moved to (apeg, bpeg, cpeg)
problemNumber Current problem number. By default the task consists of 1 practice
problem and 12 test problems presented sequentially. 0 indicates
a practice problem.
subjectAttempts Number of current attempts to solve the given problem.
targetMoves Number of prescribed moves for the current problem.
subjectMoves Number of subject-performed moves for the current problem.
excessMoves Returns the difference between number of moves performed by the subject and the
number of target moves for a given problem.
moveString Text string containing a record of performed moves. E.g. "B2R3"
indicates that the blue ball (B) was moved to peg 2 (center) and
the red ball (R) was moved to peg 3 (right).
targetAchieved Returns true as soon as the subject has successfully reached a given
problem's target / goal state. Otherwise false.
problemScore Score awarded for solving the current problem. See Krikorian et
al. (1994) for details.
totalScore Score achieved across the whole set of test problems. Computed
as the sum of individual problem scores. Maximum is 36 in the
standard version.
firstMoveTime Returns the time (in ms) elapsed between initial presentation of
the target configuration and the initialization of the subject's first
move. Sometimes also referred to as "planning time" or simply
"latency". Measure is computed separately for each attempt.
executionTime Computed as solutionTime - firstMoveTime. Measure is
computed separately for each attempt.
solutionTime Returns the time (in ms) elapsed between initial presentation of
the target configuration and a subject's successful solution.
Measure is computed separately for each attempt.
planningTime Planning time calculated as 'solutionTime - executionTime'
tChoiceStart Absolute start time for trial.choice in ms. May be used to derive
additional measures during data analysis (e.g. mean move time).
tChoiceEnd Absolute end time for trial.choice in ms. May be used to derive
additional measures during data analysis (e.g. mean move time).
tFirstMove Absolute script timestamp in ms for valid first move
ruleViolation 1 = illegal move: at least one of the two moving rules was violated during this trial
0 = legal move
countRule1Violations Sums up the number of times that Rule1 has been violated (Rule1="move only the top balls")
countRule2Violations Sums up the number of times that Rule2 has been violated (Rule2="don't move ball onto the position of another ball")
countRuleViolations Number of all rule violations
countFailedAttempts Sums up the number of failed attempts across all problems
failedAttempts: voluntary resets + pressing continue without solving the problem + too many moves

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Design
maxAttempts Allowed number of attempts to solve any given problem with
minimum amount of moves. Default is 3.
3
nPracticeProblems Number of practice problems. By default, the task contains 1
practice problem and 12 test problems. Default is 1.
1
Peg Setup
nASlots Capacity of peg 1 (left). Default is 3.3
nBSlots Capacity of peg 2 (center). Default is 2.2
nCSlots Capacity of peg 3 (right). Default is 1.1
h1 Horizontal coordinates of peg 1 (left) in screen percentages (0% = left edge of canvas - right edge of canvas = 100%)20%
h2 Horizontal coordinates of peg 2 (center) in screen percentages50%
h3 Horizontal coordinates of peg 3 (right) in screen percentages80%
v1 Vertical coordinate of bottom ball position in screen percentages (0% = top of canvas - bottom of canvas = 100%)80%
v2 Vertical coordinate of center ball position in screen percentages65%
v3 Vertical coordinate of top ball position in screen percentages50%
rStartX Determines the red ball's horizontal start position (horizontal, vertical).parameters.h1
rStartY Determines the red ball's vertical start positionparameters.v2
gStartX Determines the green ball's horizontal start positionparameters.h1
gStartY Determines the green ball's vertical start positionparameters.v1
bStartX Determines the blue ball's horizontal start positionparameters.h2
bStartY Determines the blue ball's vertical start positionparameters.v1
Ui Parameter
showNextButton True = show the 'next' button; false = 'next' button is not presentedtrue
showresetButton True = a reset button is provided; false = no reset button is providedtrue
Timing Parameters
interTrialInterval The intertrial interval (time between problems) in ms. Default is 1000.1000
feedbackDuration Duration of performance feedback in ms. Default is 2000.2000