20
CAN BLIND PROGRAMMERS PROVIDE (ACCIDENTAL) INSIGHT INTO PROGRAMMING LANGUAGE DESIGN? Andreas Stefik, Ph.D. Assistant Professor Computer Science Southern Illinois University Edwardsville

Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

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

Page 1: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

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?

BLIND INDIVIDUALS FACE UNIQUE CHALLENGES WHEN LEARNING TO PROGRAM

Page 3: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

Integrated development environments are often poorly accessible

NetBeans XCode

Page 4: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

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?

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?

SYNTAX IS HARDER TO UNDERSTAND THROUGH AUDIO

Page 7: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

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?

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?

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?

OUR SCREEN READER FRIENDLY PROGRAMMING LANGUAGE “SEEMED” EASIER TO UNDERSTAND IN GENERAL

Page 11: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

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?

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?

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?

EMPIRICAL STUDIES WITH NOVICES MAY REVEAL IMPROVEMENTS FOR PROGRAMMING LANGUAGES

Page 15: Can Blind Programmers Provide (Accidental) Insight into Programming Language Design?

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?

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?

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?

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?

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?

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