Tower Test

Technical Manual

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

Script Copyright © Millisecond Software, LLC

Background

This script implements a computerized version of the Delis-Kaplan Executive Function System (D-KEFS) Tower of London Test. The Tower of London Test is a test of excutive functioning with a focus on planning abilities.

Duration

10 minutes

Description

Participants are asked to arrange up to five discs of varying sizes on three different pegs in a specific solution pattern in as few moves as possible and observing two movement rules: "Only move the top disc" and "bigger discs may not be placed on top of smaller discs". This test is timed.

Procedure

• 9 problems total with various number of discs
disc1 = smallest to disc5 = largest disc

• each problem is timed (script automatically quits the trial after the allotted time is used up)
-> to edit timings go to section Editable Lists (list.maxdurations)
• script quits after 3 unsuccessful (= target state was not achieved within the time limit)
consecutive problems (first one excluded from count)
• one attempt per problem

Problem 1 & 2 (but not problem 3-9)
Feedback Prompts:
if the optimal solution wasn't presented, the computer plays an 'optimal solution video'

Rule Reminders provided:
•for the first violation of each rule: a reminder of the rule is provided, and the previous set-up restored
•for subsequent violations: only a 'Violation' reminder is provided and the previous set-up restored

Stimuli

•see section Editable Stimuli, different base/peg/disc images can be used (iin that case positions of
base/pegs/discs may have to be adjusted)
•the current and goal states of each disc can be edited under section Editable Lists)

Instructions

Instructions are provided by Millisecond. They are adapted from the D-KEFS Tower Test to the computer.
Instructions use problem set 1 as an example (similarly to the original D-KEFS tower instructions).

Summary Data

File Name: towertest_d_kefs_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 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
totalScore Score achieved across the whole set of test problems. Computed
as the sum of individual problem scores. Maximum is 30 in the
standard version.
problemNumber Last problem number (1-9) that was attempted
meanFirstMoveTime Mean first move time (in ms); based on all recorded first move-times
meanSolutionTime Mean solution time (in ms) - across all attempts
meanExecutionTime Mean execution time (in ms) - across all attempts
meanPlanningTime Mean planning time (in ms) - across all attempts
meanCorrSolutionTime Mean solution time (in ms) - across successful attempts only
meanCorrExecutionTime Mean execution time (in ms) - across successful attempts only
meanCorrPlanningTime Mean planning time (in ms) - across successful attempts only
timePerMoveRatio Mean amount of time (in ms) spent on each move
(ratio of totalCompletionTime over the number of moves made)
moveAccRatio Number of moves made in relationship to the number of optimal moves
1 = participant made only the number of optimal moves (but may NOT have solved the problems)
moveAccRatioCS Number of moves made in relationship to the number of optimal moves
(only calculated for solved problems)
1 = participant made only the optimal moves for the problems solved
countViolationsTotal Counts the number of rule violations across problems

Raw Data

File Name: towertest_d_kefs_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.
problemNumber Current problem number (1-9)
nDiscs Stores the number of discs present in the current problem
maxDuration Stores the allotted maximum duration (in ms) for the current problem
targetAchieved Returns 1 as soon as the subject has successfully reached a given problem's target / goal state. Otherwise 0.
targetMoves Number of prescribed (minimal) moves to solve the current problem.
subjectMoves Number of subject-performed moves for the current problem.
each rule violation counts as one extra move in this script
(the correction of the violation is not counted as a move)
excessMoves Returns the difference between number of moves performed by the subject ('subjectMoves')
and the number of target moves for a given problem.
achievementScore Score awarded for solving the current problem.
Problem1-2: 0 (no solution), 1 (non-optimal solution), 2 (optimal solution)
problem3-4: 0 (no solution), 1 (>= ideal movements + 2), 2 (= ideal movements + 1), 3 (optimal solution)
problem5-7: 0 (no solution), 1 (>= ideal movements + 3), 2 (= ideal movements + 2), 3 (= ideal movements + 1), 4 (=optimal solution)
problem 8: 0 (no solution), 1 (>= ideal movements + 5), 2 (= ideal movements + 3/4), 3 (= ideal movements + 1/2), 4 (=optimal solution)
problem 9: 0 (no solution), 1 (>= ideal movements + 7), 2 (= ideal movements + 4/5/6), 3 (= ideal movements + 1/2/3), 4 (=optimal solution)
totalScore Score achieved across the whole set of test problems. Computed
as the sum of individual problem scores. Maximum is 30 in the
standard version.
consecutiveErrorRuns Stores the number of consecutive error runs (resets for each correctly solved problem)
stopTask Pseudo-boolean switch to stop the task prematurely when stop condition has been met
(= 3 unsuccessful solution attempts for three consecutive problems - except 1)
violation 0 = no rule was violated with the currently recorded move
1 = rule 1 was violated ('no larger disc onto smaller disc')
2 = rule 2 was violated ('only top disc can be moved')
(if rule 1 AND rule 2 are violated in the same move, only rule violation 2 is noted.
The violations count as a single violation in this script)
countViolationsProblem Counts the number of rule violations per problem
firstMoveTime Returns the time (in ms) elapsed between initial presentation of
the target configuration and the initialization of the subject's first valid
move. Sometimes also referred to as "planning time" or simply
"latency". Measure is computed separately for each problem.
solutionTime Returns the time (in ms) elapsed between initial presentation of
the target configuration and a subject's successful solution or problem termination.
Measure is computed separately for each problem.
executionTime Computed as solutionTime - firstMoveTime. Measure is
computed separately for each problem.
planningTime Computed as solutionTime - executionTime. Measure is
computed separately for each problem.
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).
totalCompletionTime Cumulative solution times across all problem sets attempted
latency The latency of the current response in ms (or if no response: trialduration)
response Response made (the peg that was moved to)
trial.choice.lastDropSource The last moved disc (1, 2, 3, 4, or 5)
trial.choice.lastDropTarget: the last peg that a disc was moved to (apeg, bpeg, cpeg)
moveString Text string containing a record of performed moves. E.g. "1apeg,"
indicates that disc1 (the smallest) was moved to pegA (the left one).
A rule violation is expressed as "rule1violation (2bpeg)" => disc2 was moved onto a smaller disc onto b-peg
topInA Returns the disc number (1, 2, 3, 4, or 5) currently inhabiting the top position
on peg 1 (left). Returns 'none' if peg is empty. Used to determine
valid responses in 'trial.choice'.
topInB Returns the disc number (1, 2, 3, 4, or 5) currently inhabiting the top position
on peg 2 (center). Returns 'none' if peg is empty. Used to determine
valid responses in 'trial.choice'.
topInC Returns the disc number (1, 2, 3, 4, or 5) currently inhabiting the top position
on peg 3 (right). Returns 'none' if peg is empty. Used to determine
valid responses in 'trial.choice'.
aCount The number of discs currently placed on peg 1 (left).
bCount The number of discs currently placed on peg 2 (center).
cCount The number of discs currently placed on peg 3 (right).
cumMoves Cumulative number of moves made across all problem sets attempted
cumMovesCS Cumulative number of moves made across all problem sets that were solved
cumOptimalMoves Cumulative number of optimal moves across those problem sets that were attempted
cumOptimalMovesCS Cumulative number of optimal moves across those problem sets that were solved

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Design
showTimer True = presents the timer to participants while solving the problem (default)
false = does not present the timer
true
showMovementInfo True = presents the optimal number of movements and tracks the participant's movement on screen
false = no movement info is presented to participant
false
showScores True = score information is presented to participant
false = no score information is presented to participant
false
showRuleReminder True = rules are displayed on screen throughout the task
false = rules are not displayed on screen
true
nASlots Capacity of peg 1 (left).5
nBSlots Capacity of peg 2 (center).5
nCSlots Capacity of peg 3 (right).5
Disk Coordinates In Canvas%: H = Horizontal (3 Peg Positions); V = Vertical (5 Positions Per Peg)
h1 Position of peg1 (left)20%
h2 Position of peg2 (middle)50%
h3 Position of peg3 (right)80%
v1 Bottom position of a disk on a peg84.5%
v2 Bottom/middle position of a disk on a peg76.15%
v3 Middle position of a disk on a peg67.85%
v4 Middle/top position of a disk on a peg59.50%
v5 Top position of a disk on a peg51.25%
Timing Parameters
feedbackDuration Duration of performance feedback in ms.2000