Upload
harriet-raymond
View
37
Download
0
Embed Size (px)
DESCRIPTION
Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?. Andreas Stefik, Ph.D. Assistant Professor Computer Science Southern Illinois University Edwardsville. Blind individuals Face unique challenges when Learning to Program. - PowerPoint PPT Presentation
Citation preview
CAN BLIND PROGRAMMERS PROVIDE (ACCIDENTAL) INSIGHT INTO PROGRAMMING LANGUAGE DESIGN?
Andreas Stefik, Ph.D.
Assistant Professor
Computer Science
Southern Illinois University Edwardsville
BLIND INDIVIDUALS FACE UNIQUE CHALLENGES WHEN LEARNING TO PROGRAM
Integrated development environments are often poorly accessible
NetBeans XCode
Visualization is (obviously) not a sensible option for Blind Individuals
Alice Unity 3D
Given that programming languages use text, they are a viable option for blind students
Do variations in
syntax matter
for the blind?
How well do programming
languages “read” through a screen
reader?
SYNTAX IS HARDER TO UNDERSTAND THROUGH AUDIO
C-style syntax is hard to understand using audio
for(int i = 0; i < 10; i++) {
System.out.println(i);
}
This translates to:
for int i equals zero semicolon i less than ten semicolon i plus plus right parent left brace
Initially, we thought a new language might be easier to “read” with a screen reader
integer i = 0
repeat 10 times
print I
i = i + 1
end
1) Use plain English2) minimize the use of
esoteric symbols (e.g., {}, ||, &&, ===)
3) Be terse, but clear
We also used statistical measures of auditory comprehension to design talking debuggers
Talking Debugger
Artifact Encoding
Loop Iteration 1
Loop Iteration 2
1 Nested If True
1 Nested If False
End Loop
2011 Java Innovation Award
OUR SCREEN READER FRIENDLY PROGRAMMING LANGUAGE “SEEMED” EASIER TO UNDERSTAND IN GENERAL
Before starting the design of Quorum, we thought, let’s ask novices what they think
The words for, while, and foreach make no sense.
Our broad goal of these surveys was to find out, “What words/symbols do novices think we should use in a programming language?”Functions with return values This Null
Exceptions/Throw
We asked hundreds of novices what they thought the syntax of a programming language “should” be.
When we talk to novices about programming languages, they say …
Standard Java Syntax:
for(int i = 0; i < 10; i++) {}
That’s not Greek, it’s Klingon*
From a news article comparing Quorum to Perl:http://www.fastcodesign.com/1665735/why-arent-computer-programming-languages-designed-better
EMPIRICAL STUDIES WITH NOVICES MAY REVEAL IMPROVEMENTS FOR PROGRAMMING LANGUAGES
We setup a study on novice accuracy rates between three programming languages
vs.
vs.Randomo
From medicine, we adapted the idea of a “Placebo” by randomly selecting syntax from the ASCII table
Novice Perl users could not program significantly more accurately than those using a programming language with randomly generated keywords
Results show Quorum > (Perl = Randomo)Quorum: (M=.628, SD=.198)Perl: (M=.432, SD=.179)Randomo: (M=.341, SD=.173)
Perl users performed no better than those using a Placebo? Let’s run a replication.
Java and Perl users performed no better than Placebo Users (Ruby, Python, and Quorum users did)
ResultsLargely
Replicate
Our statistical models can estimate per-token accuracy rates, leading to changes in Quorum 1.7
Quorum 1.0 Syntax
Quorum 1.7 Syntax
Results suggest Quorum should allow:1. Limited type inference2. More “Ruby-like” if statements
One blind student, who has programmed in Python and Quorum, summed it up by saying:
I have been, you know looking at it, and ... the
syntax is just very simple to use. I can just remember most of the keywords and
so I just think it is pretty nice and flexible.
From an interview with a blind student from Tennessee on Quorum 1.6, Sodbeans 3.0, and our curriculum/textbook
Working with blind individuals made us re-think the design of programming languages, which may benefit everyone
Thanks!Quorum: http://quorum.sourceforge.net/Sodbeans: http://sodbeans.sourceforge.net/
Quorum 1.7 and Sodbeans 3.5Early February