SlideShare a Scribd company logo
Thomas Fritz*, Andrew Begel°, 

Sebastian C. Müller*, 

Serap Yigit-Elliott†, and Manuela Züger*"
* University of Zurich, Switzerland"
° Microsoft Research, USA"
† Exponent, USA"
using	
  Graphics;	
  
	
  
namespace	
  Study	
  {	
  
	
  	
  	
  public	
  class	
  Drawing	
  {	
  
	
  	
  	
  	
  	
  	
  public	
  static	
  void	
  Main(string[]	
  args)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Circle	
  c	
  	
  	
  	
  =	
  new	
  Circle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Triangle	
  t1	
  =	
  new	
  Triangle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Square	
  s	
  	
  	
  	
  =	
  new	
  Square();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Triangle	
  t2	
  =	
  new	
  Triangle();	
  
	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(t2);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(t1);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(c);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(s);	
  	
  
	
  	
  	
   	
  }	
  
	
  	
  	
  }	
  
}	
  
using	
  Graphics;	
  
	
  
namespace	
  Study	
  {	
  
	
  	
  	
  public	
  class	
  Drawing	
  {	
  
	
  	
  	
  	
  	
  	
  public	
  static	
  void	
  Main(string[]	
  args)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Object	
  objectA	
  =	
  new	
  Circle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Object	
  objectK	
  =	
  new	
  Circle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Object	
  objectX	
  =	
  new	
  Square();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Object	
  objectB	
  =	
  new	
  Triangle();	
  
	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(objectX);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(objectA);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(objectB);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(objectK);	
  	
  
	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  }	
  
}	
  
2	
  
•  Several research areas tackle this question:"
•  CS Education"
•  Psychology of Programming"
•  Program Comprehension"
•  And its implications:"
•  Testing and Automatic Verification"
•  Code Reviews"
•  Mining Software Repositories"
" "
3	
  
•  Inspired by Lee et al. Micro interaction metrics for defect
prediction. FSE 2011."
•  Programmers’ cognitive and emotional states are affected by
their code and work environment, which ultimately affects their
software."
§  Some typical emotions: frustrated, surprised, proud."
•  Some signals of your body’s internal states:"
"
4	
  
Nervous System! Brainwaves, sweat"
Eyes! Pupil size, blink rate"
Muscles! Heart rate variability, typing pressure, grip on mouse"
Affect! Facial recognition"
1.  Can we correlate developers’ cognitive and emotional states
with their perception of task difficulty?"
2.  How well do these states predict long-term effects on
software (e.g. bugs, productivity)?"
When we detect that a developer is in the zone, we could
signal his teammates to delay non-critical interruptions."
We could refactor the cognitively difficult parts of the
codebase where developers lose the most productivity."
Armed with a task difficulty classifier, we could help stop
developers from making mistakes!"
"
5	
  
1. Can readings from psycho-physiological sensors (eye
tracking, EDA, EEG) accurately predict whether a task
is perceived to be difficult or easy?"
2. Which combination of sensors and features best
predict perceived difficulty?"
3. Can we use these measures to predict perceived
difficulty even as the developer works on the task?"
6	
  
7	
  
15 professional software developers"
8 tasks with various levels of difficulty"
3 psycho-physiological sensors"
8 task ratings and 1 ranking of all tasks"
•  Recruited from a pool of professional
developers in the greater Seattle area"
•  2+ years of professional SE experience"
•  Recently programmed in C#"
•  14 male, 1 female"
•  27 to 60 years old"
8	
  
8 Tasks:!
(2 types)"
Variations:"
Cognitive Abilities:"
2 overlap tasks"
2
1
4
3
6 drawing order tasks"
Variable names (mnemonic vs. obfuscated)"
Loops with various complexity"
Nested ?: operator"
Randomly-ordered field assignments"
Working memory"
Spatial relations"
Math and Logic"
9	
  
10	
  
using	
  Graphics;	
  
	
  
namespace	
  Study	
  {	
  
	
  	
  	
  class	
  Drawing	
  {	
  
	
  	
  	
  	
  	
  	
  public	
  static	
  void	
  Main(string[]	
  args)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rectangle	
  t	
  =	
  new	
  Rectangle();	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.leftBottom	
  =	
  new	
  Point(2,2);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.leftTop	
  =	
  new	
  Point(2,6);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.rightTop	
  =	
  new	
  Point(6,6);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.rightBottom	
  =	
  new	
  Point(6,2);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(t);	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rectangle	
  s	
  =	
  new	
  Rectangle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.leftTop	
  =	
  new	
  Point(11,5);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.leftBottom	
  =	
  new	
  Point(5,5);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.rightBottom	
  =	
  new	
  Point(5,9);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.rightTop	
  =	
  new	
  Point(11,9);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(s);	
  	
  	
  	
  
	
  	
  	
  	
  	
  }	
  
}}	
  
	
  
Do these rectangles
overlap?"
11	
  
using	
  Graphics;	
  
	
  
namespace	
  Study	
  {	
  
	
  	
  	
  class	
  Drawing	
  {	
  
	
  	
  	
  	
  	
  	
  public	
  static	
  void	
  Main(string[]	
  args)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rectangle	
  t	
  =	
  new	
  Rectangle();	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.leftBottom	
  =	
  new	
  Point(2,2);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.leftTop	
  =	
  new	
  Point(2,6);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.rightTop	
  =	
  new	
  Point(6,6);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  t.rightBottom	
  =	
  new	
  Point(6,2);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(t);	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rectangle	
  s	
  =	
  new	
  Rectangle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.leftTop	
  =	
  new	
  Point(11,5);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.leftBottom	
  =	
  new	
  Point(5,5);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.rightBottom	
  =	
  new	
  Point(5,9);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  s.rightTop	
  =	
  new	
  Point(11,9);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(s);	
  	
  	
  	
  
	
  	
  	
  	
  	
  }	
  
}}	
  
	
  
using	
  Graphics;	
  
	
  
namespace	
  Study	
  {	
  
	
  	
  	
  class	
  Drawing	
  {	
  
	
  	
  	
  	
  	
  	
  public	
  static	
  void	
  Main(string[]	
  args)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rectangle	
  v	
  =	
  new	
  Rectangle();	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  v.leftTop	
  =	
  new	
  Point(1,8);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rectangle	
  x	
  =	
  new	
  Rectangle();	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  x.rightBottom	
  =	
  new	
  Point(13,3);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  x.rightTop	
  =	
  new	
  Point(13,10);	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  x.leftBottom	
  =	
  new	
  Point(7,3);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  v.rightTop	
  =	
  new	
  Point(3,8);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  x.leftTop	
  =	
  new	
  Point(7,10);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  v.rightBottom	
  =	
  new	
  Point(3,5);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(x);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  v.leftBottom	
  =	
  new	
  Point(1,5);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  Graphics.draw(v);	
  	
  	
  	
  
	
  	
  	
  	
  	
  }	
  
}}	
  
	
  
Do these rectangles overlap?"
12	
  
Neurosky Mindband"
Q Affectiva 2.0"
Tobii TX300

Eye Tracker"
EEG

(Electroencephalogram)"
EDA

(Electro-dermal activity)"
Eye tracking" • code location"
• reading vs. scanning"
• cognitive load"
• general state of arousal"
• surprise"
• visual attention, mental
workload, etc."
• attention™, meditation™"
13	
  
• α, β, γ, δ, θ waves"
• eye blinks"
• attention, meditation"
• tonic signal (low freq)"
• phasic signal (high freq)"
• gaze location"
• fixations and saccades"
• pupil size"
1.  Recorded participants’ task completion times."
2.  After each task, participant filled out NASA Task
Load Index (TLX) survey."
3.  At end of study, participant ranked tasks by
relative difficulty (1 – 8)."
14	
  
15	
  
Data recording"
Feature extraction"
Data cleaning"
Naïve Bayes classifier"
Developers’ perceived
difficulty"
16	
  
Sliding time windows

(optional)"
•  Task difficulty metrics were highly correlated. "
•  NASA TLX vs. task difficulty ranking

Spearman: r[116] = 0.587, p < 0.01"
•  Task difficulty ranking vs. task completion time 

Spearman: r[116] = 0.724, p < 0.01"
•  We created simplified metrics by nominalizing NASA TLX
and task difficulty ranking into Boolean easy/difficult."
•  Correlation: Boolean NASA TLX score vs. Boolean task difficulty 

Chi2(1, 116) = 57.954, p < 0.01 (accuracy 85%)"
•  Triangulation between metrics helps validates our results."
17	
  
18	
  
45%	
  
55%	
  
65%	
  
75%	
  
85%	
  
95%	
  
Eye	
   EDA	
   EEG	
   Eye	
  +	
  
EDA	
  
Eye	
  +	
  
EEG	
  
EDA	
  +	
  
EEG	
  
Eye	
  +	
  
EDA	
  +	
  
EEG	
  
19	
  
45%	
  
55%	
  
65%	
  
75%	
  
85%	
  
95%	
  
5	
   10	
   15	
   20	
   25	
   30	
   35	
   40	
   45	
   50	
   55	
   60	
  
Sliding	
  Windows	
  Size	
  (sec)	
  
20	
  
21	
  
45%	
  
55%	
  
65%	
  
75%	
  
85%	
  
95%	
  
Eye	
   EDA	
   EEG	
   Eye	
  +	
  
EDA	
  
Eye	
  +	
  
EEG	
  
EDA	
  +	
  
EEG	
  
Eye	
  +	
  
EDA	
  +	
  
EEG	
  
45%	
  
55%	
  
65%	
  
75%	
  
85%	
  
95%	
  
5	
   10	
   15	
   20	
   25	
   30	
   35	
   40	
   45	
   50	
   55	
   60	
  
Sliding	
  Windows	
  Size	
  (sec)	
  
22	
  
23	
  
45%	
  
55%	
  
65%	
  
75%	
  
85%	
  
95%	
  
Eye	
   EDA	
   EEG	
   Eye	
  +	
  
EDA	
  
Eye	
  +	
  
EEG	
  
EDA	
  +	
  
EEG	
  
Eye	
  +	
  
EDA	
  +	
  
EEG	
   Sliding	
  Window	
  Size	
  (sec)	
  
45%	
  
55%	
  
65%	
  
75%	
  
85%	
  
95%	
  
5	
   10	
  15	
  20	
  25	
  30	
  35	
  40	
  45	
  50	
  55	
  60	
  
1. Can readings from psycho-physiological sensors (eye
tracking, EDA, EEG) accurately predict whether a task
is perceived to be difficult or easy?"
2. Which combination of sensors and features best
predict perceived difficulty?"
3. Can we use these measures to predict perceived
difficulty even as the developer works on the task?"
24	
  

More Related Content

PDF
6th math c2 -inv#3--nov12
PDF
Pc12 sol c03_cp
DOC
Applications of derivatives
PDF
Pc12 sol c03_review
PDF
Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and P...
PDF
Eye see overview general capabilities
PDF
Using (Bio)Metrics To Predict Code Quality Online
PPTX
TVC Eye Tracking - Example Report
6th math c2 -inv#3--nov12
Pc12 sol c03_cp
Applications of derivatives
Pc12 sol c03_review
Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and P...
Eye see overview general capabilities
Using (Bio)Metrics To Predict Code Quality Online
TVC Eye Tracking - Example Report

Similar to Using psycho physiological sensors to assess task difficulty in software development (20)

PDF
Refactoring
PDF
Software Development - Thinking Object's Way
PDF
Les nouveautés de C# 6
PDF
Composite Pattern
PDF
Computer Graphics in Java and Scala - Part 1
PPTX
What's new in C# 6.0
PDF
Please don't make me draw (eKnow 2010)
PDF
How to Find Relevant Data for Effort Estimation
PDF
CSMR06a.ppt
PPTX
Evaluating Cues for Resuming Interrupted Programming TAsks
PDF
Computer Vision using Ruby and libJIT - RubyConf 2009
PDF
K031065069
PPTX
Transferring Software Testing and Analytics Tools to Practice
PPTX
ByteCode 2012 Talk: Quantitative analysis of Java/.Net like programs to under...
PDF
Test beautycleanness
PDF
Darkonoid
DOC
C# example (Polymorphesim)
PDF
Let's go to the whiteboard: how and why software developers use drawings
PDF
FAMILY OF 2-SIMPLEX COGNITIVE TOOLS AND THEIR APPLICATIONS FOR DECISION-MAKIN...
PDF
FAMILY OF 2-SIMPLEX COGNITIVE TOOLS AND THEIR APPLICATIONS FOR DECISION-MAKIN...
Refactoring
Software Development - Thinking Object's Way
Les nouveautés de C# 6
Composite Pattern
Computer Graphics in Java and Scala - Part 1
What's new in C# 6.0
Please don't make me draw (eKnow 2010)
How to Find Relevant Data for Effort Estimation
CSMR06a.ppt
Evaluating Cues for Resuming Interrupted Programming TAsks
Computer Vision using Ruby and libJIT - RubyConf 2009
K031065069
Transferring Software Testing and Analytics Tools to Practice
ByteCode 2012 Talk: Quantitative analysis of Java/.Net like programs to under...
Test beautycleanness
Darkonoid
C# example (Polymorphesim)
Let's go to the whiteboard: how and why software developers use drawings
FAMILY OF 2-SIMPLEX COGNITIVE TOOLS AND THEIR APPLICATIONS FOR DECISION-MAKIN...
FAMILY OF 2-SIMPLEX COGNITIVE TOOLS AND THEIR APPLICATIONS FOR DECISION-MAKIN...
Ad

Recently uploaded (20)

PDF
bbec55_b34400a7914c42429908233dbd381773.pdf
PPTX
Derivatives of integument scales, beaks, horns,.pptx
PDF
HPLC-PPT.docx high performance liquid chromatography
PPTX
2. Earth - The Living Planet earth and life
PPTX
GEN. BIO 1 - CELL TYPES & CELL MODIFICATIONS
PDF
AlphaEarth Foundations and the Satellite Embedding dataset
PPTX
Classification Systems_TAXONOMY_SCIENCE8.pptx
PPTX
BIOMOLECULES PPT........................
PPTX
TOTAL hIP ARTHROPLASTY Presentation.pptx
PDF
Sciences of Europe No 170 (2025)
PDF
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
PPTX
Comparative Structure of Integument in Vertebrates.pptx
PPTX
Introduction to Cardiovascular system_structure and functions-1
PPTX
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
PDF
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
PPTX
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
DOCX
Viruses (History, structure and composition, classification, Bacteriophage Re...
PDF
Biophysics 2.pdffffffffffffffffffffffffff
PDF
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
bbec55_b34400a7914c42429908233dbd381773.pdf
Derivatives of integument scales, beaks, horns,.pptx
HPLC-PPT.docx high performance liquid chromatography
2. Earth - The Living Planet earth and life
GEN. BIO 1 - CELL TYPES & CELL MODIFICATIONS
AlphaEarth Foundations and the Satellite Embedding dataset
Classification Systems_TAXONOMY_SCIENCE8.pptx
BIOMOLECULES PPT........................
TOTAL hIP ARTHROPLASTY Presentation.pptx
Sciences of Europe No 170 (2025)
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
Comparative Structure of Integument in Vertebrates.pptx
Introduction to Cardiovascular system_structure and functions-1
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
Viruses (History, structure and composition, classification, Bacteriophage Re...
Biophysics 2.pdffffffffffffffffffffffffff
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
Ad

Using psycho physiological sensors to assess task difficulty in software development

  • 1. Thomas Fritz*, Andrew Begel°, 
 Sebastian C. Müller*, 
 Serap Yigit-Elliott†, and Manuela Züger*" * University of Zurich, Switzerland" ° Microsoft Research, USA" † Exponent, USA"
  • 2. using  Graphics;     namespace  Study  {        public  class  Drawing  {              public  static  void  Main(string[]  args)  {                    Circle  c        =  new  Circle();                    Triangle  t1  =  new  Triangle();                    Square  s        =  new  Square();                    Triangle  t2  =  new  Triangle();                                  Graphics.draw(t2);                    Graphics.draw(t1);                    Graphics.draw(c);                    Graphics.draw(s);            }        }   }   using  Graphics;     namespace  Study  {        public  class  Drawing  {              public  static  void  Main(string[]  args)  {                    Object  objectA  =  new  Circle();                    Object  objectK  =  new  Circle();                    Object  objectX  =  new  Square();                    Object  objectB  =  new  Triangle();                                  Graphics.draw(objectX);                    Graphics.draw(objectA);                    Graphics.draw(objectB);                    Graphics.draw(objectK);                }        }   }   2  
  • 3. •  Several research areas tackle this question:" •  CS Education" •  Psychology of Programming" •  Program Comprehension" •  And its implications:" •  Testing and Automatic Verification" •  Code Reviews" •  Mining Software Repositories" " " 3  
  • 4. •  Inspired by Lee et al. Micro interaction metrics for defect prediction. FSE 2011." •  Programmers’ cognitive and emotional states are affected by their code and work environment, which ultimately affects their software." §  Some typical emotions: frustrated, surprised, proud." •  Some signals of your body’s internal states:" " 4   Nervous System! Brainwaves, sweat" Eyes! Pupil size, blink rate" Muscles! Heart rate variability, typing pressure, grip on mouse" Affect! Facial recognition"
  • 5. 1.  Can we correlate developers’ cognitive and emotional states with their perception of task difficulty?" 2.  How well do these states predict long-term effects on software (e.g. bugs, productivity)?" When we detect that a developer is in the zone, we could signal his teammates to delay non-critical interruptions." We could refactor the cognitively difficult parts of the codebase where developers lose the most productivity." Armed with a task difficulty classifier, we could help stop developers from making mistakes!" " 5  
  • 6. 1. Can readings from psycho-physiological sensors (eye tracking, EDA, EEG) accurately predict whether a task is perceived to be difficult or easy?" 2. Which combination of sensors and features best predict perceived difficulty?" 3. Can we use these measures to predict perceived difficulty even as the developer works on the task?" 6  
  • 7. 7   15 professional software developers" 8 tasks with various levels of difficulty" 3 psycho-physiological sensors" 8 task ratings and 1 ranking of all tasks"
  • 8. •  Recruited from a pool of professional developers in the greater Seattle area" •  2+ years of professional SE experience" •  Recently programmed in C#" •  14 male, 1 female" •  27 to 60 years old" 8  
  • 9. 8 Tasks:! (2 types)" Variations:" Cognitive Abilities:" 2 overlap tasks" 2 1 4 3 6 drawing order tasks" Variable names (mnemonic vs. obfuscated)" Loops with various complexity" Nested ?: operator" Randomly-ordered field assignments" Working memory" Spatial relations" Math and Logic" 9  
  • 10. 10   using  Graphics;     namespace  Study  {        class  Drawing  {              public  static  void  Main(string[]  args)  {                    Rectangle  t  =  new  Rectangle();                                                                                                t.leftBottom  =  new  Point(2,2);                    t.leftTop  =  new  Point(2,6);                    t.rightTop  =  new  Point(6,6);                    t.rightBottom  =  new  Point(6,2);                                                          Graphics.draw(t);                      Rectangle  s  =  new  Rectangle();                    s.leftTop  =  new  Point(11,5);                    s.leftBottom  =  new  Point(5,5);                    s.rightBottom  =  new  Point(5,9);                    s.rightTop  =  new  Point(11,9);                                                                                                                          Graphics.draw(s);                  }   }}     Do these rectangles overlap?"
  • 11. 11   using  Graphics;     namespace  Study  {        class  Drawing  {              public  static  void  Main(string[]  args)  {                    Rectangle  t  =  new  Rectangle();                                                                                                t.leftBottom  =  new  Point(2,2);                    t.leftTop  =  new  Point(2,6);                    t.rightTop  =  new  Point(6,6);                    t.rightBottom  =  new  Point(6,2);                                                          Graphics.draw(t);                      Rectangle  s  =  new  Rectangle();                    s.leftTop  =  new  Point(11,5);                    s.leftBottom  =  new  Point(5,5);                    s.rightBottom  =  new  Point(5,9);                    s.rightTop  =  new  Point(11,9);                                                                                                                          Graphics.draw(s);                  }   }}     using  Graphics;     namespace  Study  {        class  Drawing  {              public  static  void  Main(string[]  args)  {                    Rectangle  v  =  new  Rectangle();                                            v.leftTop  =  new  Point(1,8);                    Rectangle  x  =  new  Rectangle();                    x.rightBottom  =  new  Point(13,3);                    x.rightTop  =  new  Point(13,10);                      x.leftBottom  =  new  Point(7,3);                    v.rightTop  =  new  Point(3,8);                    x.leftTop  =  new  Point(7,10);                    v.rightBottom  =  new  Point(3,5);                                          Graphics.draw(x);                    v.leftBottom  =  new  Point(1,5);                    Graphics.draw(v);                  }   }}     Do these rectangles overlap?"
  • 12. 12  
  • 13. Neurosky Mindband" Q Affectiva 2.0" Tobii TX300
 Eye Tracker" EEG
 (Electroencephalogram)" EDA
 (Electro-dermal activity)" Eye tracking" • code location" • reading vs. scanning" • cognitive load" • general state of arousal" • surprise" • visual attention, mental workload, etc." • attention™, meditation™" 13   • α, β, γ, δ, θ waves" • eye blinks" • attention, meditation" • tonic signal (low freq)" • phasic signal (high freq)" • gaze location" • fixations and saccades" • pupil size"
  • 14. 1.  Recorded participants’ task completion times." 2.  After each task, participant filled out NASA Task Load Index (TLX) survey." 3.  At end of study, participant ranked tasks by relative difficulty (1 – 8)." 14  
  • 15. 15  
  • 16. Data recording" Feature extraction" Data cleaning" Naïve Bayes classifier" Developers’ perceived difficulty" 16   Sliding time windows
 (optional)"
  • 17. •  Task difficulty metrics were highly correlated. " •  NASA TLX vs. task difficulty ranking
 Spearman: r[116] = 0.587, p < 0.01" •  Task difficulty ranking vs. task completion time 
 Spearman: r[116] = 0.724, p < 0.01" •  We created simplified metrics by nominalizing NASA TLX and task difficulty ranking into Boolean easy/difficult." •  Correlation: Boolean NASA TLX score vs. Boolean task difficulty 
 Chi2(1, 116) = 57.954, p < 0.01 (accuracy 85%)" •  Triangulation between metrics helps validates our results." 17  
  • 18. 18  
  • 19. 45%   55%   65%   75%   85%   95%   Eye   EDA   EEG   Eye  +   EDA   Eye  +   EEG   EDA  +   EEG   Eye  +   EDA  +   EEG   19   45%   55%   65%   75%   85%   95%   5   10   15   20   25   30   35   40   45   50   55   60   Sliding  Windows  Size  (sec)  
  • 20. 20  
  • 21. 21   45%   55%   65%   75%   85%   95%   Eye   EDA   EEG   Eye  +   EDA   Eye  +   EEG   EDA  +   EEG   Eye  +   EDA  +   EEG   45%   55%   65%   75%   85%   95%   5   10   15   20   25   30   35   40   45   50   55   60   Sliding  Windows  Size  (sec)  
  • 22. 22  
  • 23. 23   45%   55%   65%   75%   85%   95%   Eye   EDA   EEG   Eye  +   EDA   Eye  +   EEG   EDA  +   EEG   Eye  +   EDA  +   EEG   Sliding  Window  Size  (sec)   45%   55%   65%   75%   85%   95%   5   10  15  20  25  30  35  40  45  50  55  60  
  • 24. 1. Can readings from psycho-physiological sensors (eye tracking, EDA, EEG) accurately predict whether a task is perceived to be difficult or easy?" 2. Which combination of sensors and features best predict perceived difficulty?" 3. Can we use these measures to predict perceived difficulty even as the developer works on the task?" 24