Improving Instruction of Programming Patterns with Faded Parsons Problems
Authors
Document Title
Improving Instruction of Programming Patterns with Faded Parsons Problems
Document Information
- Domain: Computer Science Education and Learning Sciences
- Keywords: Programming Education, CS1, Programming Patterns, Parsons Problems, Student Learning, Template Matching, Programming User Interface, Code Transfer, Faded Parsons Problems
Research Background and Issues
- Identified Problems or Challenges: Programming patterns are a critical component of computer science education but are often not explicitly taught. Many introductory programming courses (CS1) do not systematically cover such advanced programming skills, as teaching these concepts requires significant curriculum changes. Existing exercises (such as code tracing and code writing) provide some support but fail to address how learners can quickly and effectively master pattern recognition and application.
- Importance: Programming patterns represent higher-level abstractions for code reuse and are a key differentiator between experts and novices. Explicit learning and practice of these patterns can greatly enhance students' ability to solve complex programming problems and support their long-term development.
- Research Motivation and Related Work:
- Current mainstream exercises like code writing and code tracing have limitations, such as code tracing lacking the actual construction process and code writing not supporting specific patterns.
- Previous research has proposed some approaches explicitly focusing on pattern teaching (e.g., Pattern-Oriented methods), but these require substantial curriculum restructuring.
- Parsons Problems and their variants (e.g., Faded Parsons Problems) have shown preliminary success as low-resistance learning mediums, and their potential to promote pattern learning in introductory courses merits further exploration.
Solution
-
Methods and Solutions:
- Propose a new exercise interface variant—Faded Parsons Problems: students create a valid program by rearranging and completing partially blank code lines.
- Combine the advantages of Parsons Problems and code writing exercises, while employing explicit constraints and reduced solution freedom to guide students in understanding and applying patterns.
- System and teaching practice: The study utilized a Python-based Flask platform to provide students with diverse interactive interfaces, exploring the feasibility of applying this platform in large-scale courses.
-
Innovations:
- Introduces a low-friction method that can be embedded into teaching without significant curriculum modifications.
- Unlike traditional Parsons Problems, Faded Parsons Problems enhance students' "active construction" of code logic and patterns.
- Designed with student preferences in mind: this exercise interface better aligns with online education and remote teaching needs.
-
Implementation Steps and Techniques:
- The experiment employed a comparative design: in a large CS1 classroom setting, Faded Parsons Problems were compared with code tracing and code writing exercises.
- Implementation technologies included automated scripts to detect pattern consistency in code submissions, analyzing programming construction logic in a large number of student solutions, and recording data on exercise-solving processes.
Research Results
-
Specific Findings:
- A classroom study involving 237 students confirmed that Faded Parsons Problems are more effective than traditional code tracing and code writing exercises in helping students learn and apply programming patterns.
- The design of Faded Parsons Problems not only supports pattern learning but also facilitates the transfer of exercise outcomes to general code writing skills.
- This problem format received positive feedback from students, with 77.6% preferring it when given the freedom to choose exercise methods.
-
Comparison with Existing Solutions:
- Compared to code writing exercises, Faded Parsons Problems significantly increased the probability of "Pattern Exposure" and more effectively supported "Pattern Acquisition."
- Compared to code tracing exercises, this approach better promoted students' ability to transfer skills to code writing.
-
Experimental or Evaluation Results:
- In terms of pattern exposure rate, Faded Parsons Problems achieved an average of 92.4%, far exceeding the 4.4% of code writing exercises.
- Regarding students' ability to transfer code writing skills: Faded Parsons Problems showed a transfer rate of 85.3% (Study 1), significantly higher than code tracing (55.3%).
- Although students generally perceived Faded Parsons Problems as easier, their completion rate showed no significant difference compared to code writing exercises.
-
Limitations and Future Directions:
- Limitations: The study results may be influenced by voluntary student participation (extra credit tasks) and did not systematically compare all variants of Parsons Problems. The short exposure period may also limit the learning of more complex patterns.
- Future Research Directions:
- Test the method's generalizability in other courses (non-Python) and further analyze the potential for cross-course expansion.
- Explore the advantages and disadvantages of different exercise ecosystems (e.g., higher proportions of blank code, other interactive variants).
- Investigate the psychological effects of this exercise format on students, such as the degree of improvement in self-efficacy.
- Expand the coverage of patterns and systematically select more universally applicable programming patterns to study their teaching potential.
Conclusion
Faded Parsons Problems have proven to be an effective tool for teaching programming patterns and enhancing programming skills. Without requiring major adjustments to existing course structures, they offer significant improvements in pattern exposure and code writing abilities while aligning with student preferences. This direction warrants further research and development to provide more tools and design insights for introductory programming education.
Research Questions / Practical Problems
Question signals indexed for this paper.
Research Questions
3- Do faded Parsons Problems help learning and application of programming patterns?Category: Speech, Face, and Body Pose InputSimilar questionsarrow_forward
- Compared with code tracing and code writing, in what ways are faded Parsons Problems more effective for improving programming skills?Category: Speech, Face, and Body Pose InputSimilar questionsarrow_forward
- How can programming pattern learning be efficiently supported in beginner courses without large-scale curriculum changes?Category: Speech, Face, and Body Pose InputSimilar questionsarrow_forward
Practical Problems
1- Beginners struggle to learn and apply higher-order programming patterns.Category: Speech, Face, and Body Pose InputSimilar questionsarrow_forward
- 80%
Automatic Diagnosis of Students' Misconceptions in K-8 Mathematics
CHI '18· Programming Education & Computational Thinking +2
- 80%
Investigating the Impact of a Real-time, Multimodal Student Engagement Analytics Technology in Authentic Classrooms
CHI '19· Programming Education & Computational Thinking +2
- 80%
Exploring the Potential of an Intelligent Tutoring System for Sketching Fundamentals
CHI '20· Programming Education & Computational Thinking +1
- 80%
Engaging Teachers to Co-Design Integrated AI Curriculum for K-12 Classrooms
CHI '21· Programming Education & Computational Thinking +2
- 80%
"Let’s talk about data": Co-Designing Critical Data Literacy Tools for K-12 Education through Dialogic Learning
CHI '26· Programming Education & Computational Thinking +2
- 75%
AlgoSolve: Supporting Subgoal Learning in Algorithmic Problem-Solving with Learnersourced Microtasks
CHI '22· Programming Education & Computational Thinking +1
- 67%
VizProg: Identifying Misunderstandings by Visualizing Students' Coding Progress
CHI '23· Programming Education & Computational Thinking +1
- 67%
OATutor: An Open-source Adaptive Tutoring System and Curated Content Library for Learning Sciences Research
CHI '23· Programming Education & Computational Thinking +2
- 67%
Exploring Teacher-Chatbot Interaction and Affect in Block-Based Programming
CHI '26· Human-LLM Collaboration +2
- 67%
ClassAid: A Real-time Instructor-AI-Student Orchestration System for Classroom Programming Activities
CHI '26· Human-LLM Collaboration +2
Based on Jaccard similarity of research subtopics & professions (≥60%)