1 / 20

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. Blind individuals Face unique challenges when Learning to Program.

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Can Blind Programmers Provide (Accidental) Insight into Programming Language Design? Andreas Stefik, Ph.D. Assistant Professor Computer Science Southern Illinois University Edwardsville

  2. Blind individuals Face unique challenges when Learning to Program

  3. Integrated development environments are often poorly accessible NetBeans XCode

  4. Visualization is (obviously) not a sensible option for Blind Individuals Alice Unity 3D

  5. Given that programming languages use text, they are a viable option for blind students How well do programming languages “read” through a screen reader? Do variations in syntax matter for the blind?

  6. Syntax is harder to understand through audio

  7. C-style syntax is hard to understand using audio for(inti = 0; i < 10; i++) { System.out.println(i); } This translates to: for inti equals zero semicolon i less than ten semicolon i plus plus right parent left brace

  8. 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 • Use plain English • minimize the use of esoteric symbols (e.g., {}, ||, &&, ===) • Be terse, but clear

  9. We also used statistical measures of auditory comprehension to design talking debuggers Talking Debugger Artifact Encoding 2011 Java Innovation Award

  10. Our screen reader friendly programming language “seemed” easier to understand in general

  11. Before starting the design of Quorum, we thought, let’s ask novices what they think The words for, while, and foreach make no sense.

  12. Our broad goal of these surveys was to find out, “What words/symbols do novices think we should use in a programming language?” Null Functions with return values This Exceptions/Throw We asked hundreds of novices what they thought the syntax of a programming language “should” be.

  13. When we talk to novices about programming languages, they say … That’s not Greek, it’s Klingon* Standard Java Syntax: for(int i = 0; i < 10; i++) {} From a news article comparing Quorum to Perl: http://www.fastcodesign.com/1665735/why-arent-computer-programming-languages-designed-better

  14. Empirical studies with novices may reveal improvements for programming languages

  15. 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

  16. 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.

  17. Java and Perl users performed no better than Placebo Users (Ruby, Python, and Quorum users did) Results Largely Replicate

  18. Our statistical models can estimate per-token accuracy rates, leading to changes in Quorum 1.7 Results suggest Quorum should allow: Limited type inference More “Ruby-like” if statements Quorum 1.0 Syntax Quorum 1.7 Syntax

  19. 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

  20. 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.5 Early February

More Related