Avoiding the Turing Tarpit: Learning Conversational Programming by Starting from Code's Purpose
Authors
Title of the Paper
Avoiding the Turing Tarpit: Learning Conversational Programming by Starting from Code’s Purpose
Paper Information
- Subject Area: Programming Education, Software Learning Methods
- Keywords: Conversational programmers, programming plans, scaffolding, motivation, computer-supported instruction, web scraping, program design, human-computer interaction, learning motivation, programming education
Research Background and Problem
-
Identified Problems or Challenges:
- Students without a computer science background wish to learn programming to communicate with technical colleagues but do not intend to become software developers—referred to as "conversational programmers."
- Existing educational resources focus excessively on syntax and semantics, lacking application-oriented content, which fails to meet the learning needs of conversational programmers, leading to frustration and a lack of confidence.
- Conversational programmers need to quickly understand the purpose of code, but traditional teaching methods trap them in the "Turing Tarpit"—where everything is possible, but nothing is easy.
-
Significance of the Research:
- With the increasing demand for programming courses from interdisciplinary learners, adapting educational methods to their needs has become critical.
- Current educational approaches fail to align with these learners' goals, resulting in inefficiency and a lack of learning motivation.
-
Research Motivation and Related Work:
- Research by Wang et al. suggests that tools for conversational programmers should avoid overemphasizing syntax and logic, instead focusing on application contexts and designing concise learning modules.
- Plan theory, which proposes dividing code into reusable goal-oriented blocks, provides inspiration for new teaching methods.
Solution
-
Proposed Method or Solution:
- This paper introduces a new approach called "Purpose-First Programming" (PFP), which supports conversational programmers by focusing on specific code patterns and program purposes within a learning domain.
- The learning content is based on a small number of common, domain-specific programming plans, using scaffolding techniques to help learners understand and modify code.
-
Innovations:
- Introduces a detailed and constrained plan model, where each plan includes sub-goals and operation slots, helping learners focus on the purpose of the code.
- Employs "glass-box scaffolding," which helps learners understand key code structures while keeping the entire code visible.
- Designs application-oriented interactive materials to enable learners to quickly acquire programming skills.
-
Implementation Steps and Key Techniques:
- Plan Design:
- Extract common plans through analysis of a large GitHub BeautifulSoup codebase.
- Validate the authenticity and applicability of the plans through expert feedback.
- Development of the Teaching Platform:
- Build interactive materials using the Runestone platform, supporting code writing, debugging, and explanation.
- Design of Teaching Support:
- Highlighting techniques to display code plans and their slots.
- Interactive activities to support plan composition and modification.
- Course Domain:
- Select web scraping as the theme, covering practical tasks with HTML and the Python BeautifulSoup library.
- Plan Design:
Research Outcomes
-
Specific Results:
- Developed a web scraping curriculum containing five plans to help learners understand and create meaningful code.
- Conversational programmers were able to complete tasks involving code writing, debugging, and explanation with scaffolding support after 30 minutes of learning.
-
Comparison with Existing Solutions and Advantages:
- Unlike traditional programming education, PFP emphasizes the functionality and domain relevance of programming plans rather than syntax details.
- Compared to visual programming tools (e.g., Snap! or PythonTutor), this method was perceived by participants as more practical and aligned with real-world needs.
-
Experimental or Evaluation Results:
- Participants demonstrated a strong sense of learning success and reduced cognitive load after using the PFP tutorial.
- Participants highlighted that the step-by-step teaching approach and domain realism increased their motivation and perceived value of learning.
-
Limitations and Future Directions:
- The current experiment involved a small sample size of only seven participants, requiring further expansion to validate its generalizability.
- The teaching tools and plan framework can be further optimized, such as enhancing editor integration to support more dynamic plan modifications.
- Future work could expand to other programming domains and design improved courses for learners with varying programming levels.
By centering learning on purpose, this research provides a practical pathway to enhance the capabilities of conversational programmers, addressing the increasingly diverse needs of programming education and offering a new paradigm for innovation in the field.
Research Questions / Practical Problems
Question signals indexed for this paper.
Research Questions
3- How can conversational programmers without computer science backgrounds quickly understand code purpose?Category: Computing and AI Literacy Education SupportSimilar questionsarrow_forward
- Can domain-specific code plans (goal-oriented blocks) improve programming learning efficiency?Category: Computing and AI Literacy Education SupportSimilar questionsarrow_forward
- How can glass-box scaffolding maintain global code visibility and improve learning outcomes in programming education?Category: Computing and AI Literacy Education SupportSimilar questionsarrow_forward
Practical Problems
1- Learners without programming backgrounds feel frustrated understanding code purpose and functionality.Category: Computing and AI Literacy Education SupportSimilar questionsarrow_forward
- 67%
Colaroid: A Literate Programming Approach for Authoring Explorable Multi-Stage Tutorials
CHI '23· Programming Education & Computational Thinking +2
- 67%
MathAssist: A Handwritten Mathematical Expression Autocomplete Technique
IUI '24· Generative AI (Text, Image, Music, Video) +2
- 60%
CFar: A Tool to Increase Communication, Productivity, and Review Quality in Collaborative Code Review
CHI '18· Open-Source Collaboration & Code Review +1
- 60%
Characterizing Scalability Issues in Spreadsheet Software using Online Forums
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
ResearchIME: A Mobile Keyboard Application for Studying Free Typing Behaviour in the Wild
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 60%
How Users Interpret Bugs in Trigger-Action Programming
CHI '19· Prototyping & User Testing +1
- 60%
Improving Crowd-Supported GUI Testing with Structural Guidance
CHI '20· Automated Driving Interface & Takeover Design +1
- 60%
Computing Students' Learning Difficulties in HCI Education
CHI '20· Programming Education & Computational Thinking +1
- 60%
Interpretable Program Synthesis
CHI '21· Explainable AI (XAI) +1
- 60%
Understanding How Programmers Can Use Annotations on Documentation
CHI '22· Programming Education & Computational Thinking +1
Based on Jaccard similarity of research subtopics & professions (≥60%)