The Turing programming language
Communications of the ACM
Comprehension strategies in programming
Empirical studies of programmers: second workshop
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
An empirical study of novice program comprehension in the imperative and object-oriented styles
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
Program understanding behavior during debugging of large scale software
ESP '97 Papers presented at the seventh workshop on Empirical studies of programmers
Cognitive strategies and looping constructs: an empirical study
Communications of the ACM
The Cornell program synthesizer: a syntax-directed programming environment
Communications of the ACM
SP/k: a system for teaching computer programming
Communications of the ACM
Studying the language and structure in non-programmers' solutions to programming problems
International Journal of Human-Computer Studies
Uncovering principles of novice programming
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Deltatalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80 Language
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
Uses of the LOGO programming language in undergraduate instruction
ACM '72 Proceedings of the ACM annual conference - Volume 2
An Empirical Investigation of the Influence of a Type of Side Effects on Program Comprehension
IEEE Transactions on Software Engineering
Using events to debug Java programs backwards in time
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Beyond AOP: toward naturalistic programming
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Natural programming languages and environments
Communications of the ACM - End-user development: tools that empower users to create their own software solutions
Nonvisual tool for navigating hierarchical structures
Assets '04 Proceedings of the 6th international ACM SIGACCESS conference on Computers and accessibility
Spoken Language Support for Software Development
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
A multi-national study of reading and tracing skills in novice programmers
Working group reports from ITiCSE on Innovation and technology in computer science education
Blind learners programming through audio
CHI '05 Extended Abstracts on Human Factors in Computing Systems
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
The linguistics of object-oriented design: implications for teaching
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
ACM Computing Surveys (CSUR)
Proceedings of the first international workshop on Computing education research
The paradoxical success of aspect-oriented programming
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Usability Implications of Requiring Parameters in Objects' Constructors
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Do Programming Languages Affect Productivity? A Case Study Using Data from Open Source Projects
FLOSS '07 Proceedings of the First International Workshop on Emerging Trends in FLOSS Research and Development
WAD: A Feasibility study using the Wicked Audio Debugger
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Understanding programmer language
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
The Programmer's Lexicon, Volume I: The Verbs
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Inspiring blind high school students to pursue computer science with instant messaging chatbots
Proceedings of the 39th SIGCSE technical symposium on Computer science education
More natural end-user software engineering
Proceedings of the 4th international workshop on End-user software engineering
The implications of method placement on API learnability
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Empirical Software Engineering
Python CS1 as preparation for C++ CS2
Proceedings of the 40th ACM technical symposium on Computer science education
Finding causes of program output with the Java Whyline
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
ACM Transactions on Computer-Human Interaction (TOCHI)
Communications of the ACM - Scratch Programming for All
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Is transactional programming actually easier?
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Performance of python CS1 students in mid-level non-python CS courses
Proceedings of the 41st ACM technical symposium on Computer science education
Using alice in CS1: a quantitative experiment
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
ACM Transactions on Computing Education (TOCE)
The Scratch Programming Language and Environment
ACM Transactions on Computing Education (TOCE)
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Faith, hope, and love: an essay on software science's neglect of human factors
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
Evaluation and Usability of Programming Languages and Tools
Empirical studies on programming language stimuli
Software Quality Control
The FCS1: a language independent assessment of CS1 knowledge
Proceedings of the 42nd ACM technical symposium on Computer science education
Proceedings of the 42nd ACM technical symposium on Computer science education
Understanding the syntax barrier for novices
Proceedings of the 16th annual joint conference on Innovation and technology in computer science education
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Mediated transfer: Alice 3 to Java
Proceedings of the 43rd ACM technical symposium on Computer Science Education
International Journal of Human-Computer Studies
All syntax errors are not equal
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Socio-PLT: principles for programming language adoption
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
An empirical study of the influence of static type systems on the usability of undocumented software
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Recent studies in the literature have shown that syntax remains a significant barrier to novice computer science students in the field. While this syntax barrier is known to exist, whether and how it varies across programming languages has not been carefully investigated. For this article, we conducted four empirical studies on programming language syntax as part of a larger analysis into the, so called, programming language wars. We first present two surveys conducted with students on the intuitiveness of syntax, which we used to garner formative clues on what words and symbols might be easy for novices to understand. We followed up with two studies on the accuracy rates of novices using a total of six programming languages: Ruby, Java, Perl, Python, Randomo, and Quorum. Randomo was designed by randomly choosing some keywords from the ASCII table (a metaphorical placebo). To our surprise, we found that languages using a more traditional C-style syntax (both Perl and Java) did not afford accuracy rates significantly higher than a language with randomly generated keywords, but that languages which deviate (Quorum, Python, and Ruby) did. These results, including the specifics of syntax that are particularly problematic for novices, may help teachers of introductory programming courses in choosing appropriate first languages and in helping students to overcome the challenges they face with syntax.