Six Learning Barriers in End-User Programming Systems
By Amy J. Ko, Brad A. Myers, Htet Htet Aung. 2004
557 citations recorded by the source corpus.
As programming skills increase in demand and utility, the learnability of end-user programming systems is of utmost importance. However, research on learning barriers in programming systems has primarily focused on languages, overlooking potential barriers in the environment and accompanying libraries. To address this, a study of beginning programmers learning Visual Basic.NET was performed. This identified six types of barriers: design, selection, coordination, use, understanding, and information. These barriers inspire a new metaphor of computation, which provides a more learner-centric view of programming system design
Subfields: Computer Science Applications, Information Systems, Software
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Science Applications
- Sumit Gulwani
- Martin P. Robillard
- Hongyu Zhang
- Margaret M. Burnett
- Qian Yang
- J.D. Zamfirescu-Pereira
- Mark Marron
- Jeffrey Wong
In Information Systems
In Software
- Sumit Gulwani
- Mark Marron
- Rastislav Bodík
- Rishabh Singh
- Jeffrey Wong
- Hailong Sun
- Graham Neubig
- R. Deline
Citations in the corpus
- What makes a good code example?: A study of programming Q&A in StackOverflow (2012, background): “However, they might face some other barriers when trying to adapt these examples to their needs [14].”
- A field study of API learning obstacles (2011, background): “Ko et al. (2004) also studied learning barriers faced by non-programmers in their attempts to use a simple programming system.”
- Retrieval-based Neural Source Code Summarization (2020, background): “Developers often spend a lot of time on reading and comprehending programs [11, 32, 33, 51] when there is no good software documentation [31, 53].”
- Investigating statistical machine learning as a tool for software development (2008, background): “identify six learning barriers faced by novice developers [16].”
- Jungloid mining: helping to navigate the API jungle (2005, background): “Ko, Myers, and Aung [ 6 ] provide a classification of barriers to learning programming system that helps explain how the problem we solve is different from that of the preceding work.”
- Why Johnny Can’t Prompt: How Non-AI Experts Try (and Fail) to Design LLM Prompts (2023, background): “…then assumed that no instructions of that type would succeed , that the bot was incapable of following the requested instruction, regardless of phrasing , leading to an early exit from a successfully selected prompt type that was merely being misused: “ok, I guess it doesn’t like to tell jokes.””
- Step Tutor: Supporting Students through Step-by-Step Example-Based Feedback (2020, background): “Students get stuck in many ways while programming [29], leading to frustration [23].”
- End-user programmers in trouble: Can the Idea Garden help them to help themselves? (2013, background): “The Idea Garden features are designed to help users overcome barriers, such as those identified by Ko et al. [16] and in our prior work ([3, 4, 5]), by providing programming knowledge as well as strategies (Table I).”
- Learnable programming (2017, background): “In 2004, Ko, Myers and Aung [15] identified six learning barriers encountered by non-programmers in programming tasks.”
- Personal Visualization and Personal Visual Analytics (2015, background): “Can one easily grow with the tool, moving towards more sophisticated analysis as they gain experience? A flip side of ease is unease: what are the barriers to use that a system imposes [36], [52]? Only a few studies have addressed this adoption issue.”
- Making mashups with marmite: towards end-user programming for the web (2007, background): “Research on end-user programming has found that programming is difficult for novices for a number of reasons [16].”
- In-IDE Code Generation from Natural Language: Promise and Challenges (2021, background): “Moreover, this need is likely to continue in the future, as new APIs appear continuously and existing APIs change in non-backwards compatible ways [77], requiring recurring learning effort [55, 80].”
- Automating string processing in spreadsheets using input-output examples (2011, unknown): “. . $10.00 their task [ 9 ]. More significantly, programming is still required to perform tedious and repetitive tasks such as transforming entities like names/phone-numbers/dates from one format to another, data cleansing, extracting data from several text files or web pages into a single document,”
- NLyze: interactive programming by natural language for spreadsheet data analysis and manipulation (2014, methodology): “Spreadsheet systems, like Microsoft Excel, come with a maze of features, and end users struggle to find the correct features to accomplish their tasks [16].”
- Influence apart from Adoption: How Interaction between Programming and Scientific Practices Shapes Modes of Inquiry in Four Oceanography Teams (2016, background): “LabVIEW (see [66]) and Excel are commonly-used “tools” but also “end-user programming” environments, with barriers to learning not unlike those of applying programming skills, such as design and difficulty in understanding and explaining unexpected behavior [34].”
- Two studies of opportunistic programming: interleaving web foraging, learning, and writing code (2009, unknown): “NET [19].”