Avoiding the Turing Tarpit: Learning Conversational Programming by Starting from Code's Purpose

Programming Education & Computational ThinkingPrototyping & User TestingSoftware Engineers & DevelopersHCI Researchers

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:

    1. 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."
    2. 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.
    3. 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:

    1. 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.
    2. Employs "glass-box scaffolding," which helps learners understand key code structures while keeping the entire code visible.
    3. Designs application-oriented interactive materials to enable learners to quickly acquire programming skills.
  • Implementation Steps and Key Techniques:

    1. Plan Design:
      • Extract common plans through analysis of a large GitHub BeautifulSoup codebase.
      • Validate the authenticity and applicability of the plans through expert feedback.
    2. Development of the Teaching Platform:
      • Build interactive materials using the Runestone platform, supporting code writing, debugging, and explanation.
    3. Design of Teaching Support:
      • Highlighting techniques to display code plans and their slots.
      • Interactive activities to support plan composition and modification.
    4. Course Domain:
      • Select web scraping as the theme, covering practical tasks with HTML and the Python BeautifulSoup library.

Research Outcomes

  • Specific Results:

    1. Developed a web scraping curriculum containing five plans to help learners understand and create meaningful code.
    2. 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:

    1. Unlike traditional programming education, PFP emphasizes the functionality and domain relevance of programming plans rather than syntax details.
    2. 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:

    1. Participants demonstrated a strong sense of learning success and reduced cognitive load after using the PFP tutorial.
    2. Participants highlighted that the step-by-step teaching approach and domain realism increased their motivation and perceived value of learning.
  • Limitations and Future Directions:

    1. The current experiment involved a small sample size of only seven participants, requiring further expansion to validate its generalizability.
    2. The teaching tools and plan framework can be further optimized, such as enhancing editor integration to support more dynamic plan modifications.
    3. 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.

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/papers/chi/47644/2021

AdRecommended

Learn AI Coding at CodeNow

open_in_newOpen DOI Link
DOI: https://doi.org/10.1145/3411764.3445571
At a Glance

Paper Snapshot

fact_check
dataset
Source
CHI
calendar_month
Year
2021
emoji_events
Award
No award tagged
group
Authors
4 authors
sell
Subtopics
Programming Education & Computational Thinking, Prototyping & User Testing
work
Professions
Software Engineers & Developers, HCI Researchers
article
Content Status
Full text indexed
hub
Related Papers
10 related papers