Introduction

Before reading this, look also at the standard SART task ; this is merely a special version of it designed by Professor Gijsbert Stoet. This introduction here is short. Read the SART page to understand the background. This page explains the problems with SART and justifies the extenion.

The original SART is a measure of sustained attention. It is a popular task on PsyToolkit, but it has its problems. In Professor Stoet’s opinion, the main problem is that there is no visual feedback for the participant when pressing the correct button. In this version that happens.

To cite this task, refer to the PsyToolkit articlespapers (Stoet 2010, 2017).

About this implementation

This version changes the color of the mask when the person presses the button correctly (to green). As in the original SART, incorrect responses to digit 3 will lead to an error feedback message.

Run the demo

In this example, you will view digits (1 to 9). Each time when it shows up, it will quickly be masked by a circle with a cross. You need to respond with a space bar, except when it is the digit 3.

Data output file

In PsyToolkit, the data output file is simply a textfile. The save line of the PsyToolkit experiment script determines what is being saved in the data output file. Typically, for each experimental trial, you would have exactly one line in your text file, and each number/word on that line gives you the information you need for your data analysis, such as the condition, response speed, and whether an error was made.

Meaning of the columns in the output datafile. For each trial (there are 18 training trials and 225 "real" trials), there is one line with 6 numbers (columns).

You need this information for your data analysis.

Colum Meaning

1

name of block

2

number of the block

3

go (1) or no-go trial (0)

4

digit (1-9)

5

size of the stimulus (values between 1 and 5, from smalles to biggest)

6

response outcome (0 is error, 1 is correct)

7

reaction time in milliseconds

PsyToolkit code

Click to expand the PsyToolkit script code (part of zip file below)
bitmaps
  mask
  mask_green
  titlescreen
  instruction1
  instruction2
  instruction_real
  mistake_wrong_press
  mistake_missed
  welldone_training
  welldone_experiment
  ready1
  ready2
  ready3

fonts
  feedbackfont arial 20 ## first font is the default font in feedback
  font1 arial 48 ## this and following font sizes are used in original study as well
  font2 arial 72
  font3 arial 94
  font4 arial 100
  font5 arial 120

task sart
  keys space
  set $current_digit &&mydigits remove first
  set $random_font random 2 6
  set $digit_size expression $random_font - 1 ## for report in save line
  font $random_font
  show text $current_digit
  readkey 1 250
  show bitmap mask
  if STATUS != TIMEOUT
    show bitmap mask_green
    set $my_rt RT
  fi
  if STATUS == TIMEOUT
    readkey 1 900
    ## next if-block new in sart2
    if STATUS != TIMEOUT 
      show bitmap mask_green
    fi
    set $my_rt expression RT + 250
  fi
  ## the whole intertrial interval is 1150 ms (250 + 900)
  set $remaining_time expression 1150 - RT
  ## determine status of response and show feedback if necessary
  set $mystatus 1 ## assume people respond correctly
  if $current_digit == 3 && STATUS != TIMEOUT
    $mystatus = 0 ## pressed when there was a 3
    show bitmap mistake_wrong_press
    delay 3000
    clear -1
    delay 500
  fi
  if $current_digit != 3 && STATUS == TIMEOUT
    $mystatus = 0 ## not pressed when there was no 3
    show bitmap mistake_missed
    delay 3000
    clear -1
    delay 500
  fi
  if $mystatus == 1
    delay $remaining_time ## only wait if there was no mistake
  fi
  ## determine trial type (1=go,0=no-go)
  set $trial_type 1
  if $current_digit == 3
    set $trial_type 0
  fi
  save BLOCKNAME BLOCKNUMBER $trial_type $current_digit $digit_size $mystatus RT

block training
  message titlescreen
  message instruction1
  message instruction2
  set &&digitrange range 1 9 
  set &&mydigits &&digitrange times 2
  set &&mydigits shuffle no_repeat
  bitmap ready3
  delay 1000
  bitmap ready2
  delay 1000  
  bitmap ready1
  delay 1000
  clear screen
  delay 1000
  clear screen
  delay 1000
  tasklist
     sart 18
  end
  feedback
    set &totalGo       count    ; select c2 == 1 && c3 == 1
    set &GoMistakes    count    ; select c2 == 1 && c3 == 1 && c6 == 0
    set &GoMistakesP   perc 16  ; select c2 == 1 && c3 == 1 && c6 == 0
    set &totalNoGo     count    ; select c2 == 1 && c3 == 0
    set &NoGoMistakes  count    ; select c2 == 1 && c3 == 0 && c6 == 0
    set &NoGoMistakesP perc 2   ; select c2 == 1 && c3 == 0 && c6 == 0
    text align left
    text -200 -200 "Results in training block:"    
    text -200 -150 &totalGo        ; prefix "Number Go trials:" 
    text -200 -100 &GoMistakes     ; prefix "Number Go mistakes:"
    text -200 -50  &GoMistakesP    ; prefix "Go mistakes:" ; postfix "%"
    text -200   0  &totalNoGo      ; prefix "Number No Go trials:" 
    text -200  50  &NoGoMistakes   ; prefix "Number No Go mistakes:"
    text -200 100  &NoGoMistakesP  ; prefix "No Go mistakes:" ; postfix "%"
    text -200 150  "Press space bar to continue"
  end
  message welldone_training

block realtest
  message instruction_real
  set &&digitrange range 1 9 
  set &&mydigits &&digitrange times 25
  set &&mydigits shuffle no_repeat
  bitmap ready3
  delay 1000
  bitmap ready2
  delay 1000  
  bitmap ready1
  delay 1000  
  tasklist
     sart 225
  end
  feedback
    set &totalGo       count    ; select c2 == 2 && c3 == 1
    set &GoMistakes    count    ; select c2 == 2 && c3 == 1 && c6 == 0
    set &GoMistakesP   perc 200 ; select c2 == 2 && c3 == 1 && c6 == 0
    set &totalNoGo     count    ; select c2 == 2 && c3 == 0
    set &NoGoMistakes  count    ; select c2 == 2 && c3 == 0 && c6 == 0
    set &NoGoMistakesP perc 25  ; select c2 == 2 && c3 == 0 && c6 == 0
    text align left
    text -200 -200 "Results in second block:"    
    text -200 -150 &totalGo        ; prefix "Number Go trials:" 
    text -200 -100 &GoMistakes     ; prefix "Number Go mistakes:"
    text -200 -50  &GoMistakesP    ; prefix "Go mistakes:" ; postfix "%"
    text -200   0  &totalNoGo      ; prefix "Number No Go trials:" 
    text -200  50  &NoGoMistakes   ; prefix "Number No Go mistakes:"
    text -200 100  &NoGoMistakesP  ; prefix "No Go mistakes:" ; postfix "%"
    text -200 150  "Press space bar to continue"
  end
  message welldone_experiment

Download

If you have a PsyToolkit account, you can upload the zipfile directly to your PsyToolkit account. Watch a video on how to do that. If you want to upload the zipfile into your PsyToolkit account, make sure the file is not automatically uncompressed (some browsers, especially Mac Safari, by default uncompress zip files). Read here how to easily deal with this.

Further reading

  • Robertson, I.H., Manly, T., Andrade, J., Baddeley, B.T., Yiend, J. (1997). 'Oops!': performance correlates of everyday attentional failures in traumatic brain injured and normal subjects. Neuropsychologia, 35(6), 747-758.

  • Ralph, B.C.W., Thomson, D.R., Seli, P., Carriere, J.S.A., Smilek, D. Media multitasking and behavioral measures of sustained attention. Attention, Perception, & Psychophysics, 77, 390-401.

  • Alloway, T. P., & Alloway, R. G. (2012). The impact of engagement with social networking sites (SNSs) on cognitive skills. Computers in Human Behavior, 28(5), 1748-1754.