The Professional Programmers Guide To C (Professional Programmers Guides)
Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?
-
Upload
harriet-raymond -
Category
Documents
-
view
33 -
download
0
description
Transcript of Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?
![Page 1: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/1.jpg)
CAN BLIND PROGRAMMERS PROVIDE (ACCIDENTAL) INSIGHT INTO PROGRAMMING LANGUAGE DESIGN?
Andreas Stefik, Ph.D.
Assistant Professor
Computer Science
Southern Illinois University Edwardsville
![Page 2: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/2.jpg)
BLIND INDIVIDUALS FACE UNIQUE CHALLENGES WHEN LEARNING TO PROGRAM
![Page 3: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/3.jpg)
Integrated development environments are often poorly accessible
NetBeans XCode
![Page 4: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/4.jpg)
Visualization is (obviously) not a sensible option for Blind Individuals
Alice Unity 3D
![Page 5: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/5.jpg)
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?
![Page 6: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/6.jpg)
SYNTAX IS HARDER TO UNDERSTAND THROUGH AUDIO
![Page 7: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/7.jpg)
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
![Page 8: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/8.jpg)
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
![Page 9: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/9.jpg)
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
![Page 10: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/10.jpg)
OUR SCREEN READER FRIENDLY PROGRAMMING LANGUAGE “SEEMED” EASIER TO UNDERSTAND IN GENERAL
![Page 11: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/11.jpg)
Before starting the design of Quorum, we thought, let’s ask novices what they think
The words for, while, and foreach make no sense.
![Page 12: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/12.jpg)
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.
![Page 13: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/13.jpg)
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
![Page 14: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/14.jpg)
EMPIRICAL STUDIES WITH NOVICES MAY REVEAL IMPROVEMENTS FOR PROGRAMMING LANGUAGES
![Page 15: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/15.jpg)
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
![Page 16: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/16.jpg)
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.
![Page 17: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/17.jpg)
Java and Perl users performed no better than Placebo Users (Ruby, Python, and Quorum users did)
ResultsLargely
Replicate
![Page 18: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/18.jpg)
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
![Page 19: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/19.jpg)
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
![Page 20: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?](https://reader036.fdocuments.us/reader036/viewer/2022062407/56812ab0550346895d8e758b/html5/thumbnails/20.jpg)
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