It Will Never Work in Theory: Live!

Our next set of online lightning talks is happening April 25-26, 2023. Check out the speakers and get your ticket now!

Reducing Withdrawal and Failure Rates with Labeled Subgoals

Reviewed by Greg Wilson / 2023-03-10
Keywords: Computing Education

Being a good programmer doesn't automatically make you good at teaching other people to program. In fact, the unconscious competence that allows you to focus on the problem rather than stumbling over syntax issues or fumbling to create functions may actually make you worse as a teacher, since you will skip or combine steps that novices still need to do slowly and one at a time.

Research has proven that labeling subgoals—i.e., breaking a solution technique down into small steps and giving those steps names—helps learners master material more quickly. This study looked more closely at the benefits of labeled subgoals for introductory programming courses. The authors found that it helped on quizzes given within a week of new material being presented, but didn't make a difference to overall results on final exams done later. However, students who had been given labeled subgoals performed more consistently on exams; perhaps more importantly, they were also less likely to drop or fail the course. While studies like this one may not get the same attention as Silicon Valley hype about AI disrupting education, their findings are much more likely to actually help the next generation of programmers learn their craft.

Lauren E. Margulieux, Briana B. Morrison, and Adrienne Decker. Reducing withdrawal and failure rates in introductory programming with subgoal labeled worked examples. International Journal of STEM Education, May 2020. doi:10.1186/s40594-020-00222-7.

Background: Programming a computer is an increasingly valuable skill, but dropout and failure rates in introductory programming courses are regularly as high as 50%. Like many fields, programming requires students to learn complex problem-solving procedures from instructors who tend to have tacit knowledge about low-level procedures that they have automatized. The subgoal learning framework has been used in programming and other fields to break down procedural problem solving into smaller pieces that novices can grasp more easily, but it has only been used in short-term interventions. In this study, the subgoal learning framework was implemented throughout a semester-long introductory programming course to explore its longitudinal effects. Of 265 students in multiple sections of the course, half received subgoal-oriented instruction while the other half received typical instruction.

Results: Learning subgoals consistently improved performance on quizzes, which were formative and given within a week of learning a new procedure, but not on exams, which were summative. While exam performance was not statistically better, the subgoal group had lower variance in exam scores and fewer students dropped or failed the course than in the control group. To better understand the learning process, we examined students' responses to open-ended questions that asked them to explain the problem-solving process. Furthermore, we explored characteristics of learners to determine how subgoal learning affected students at risk of dropout or failure.

Conclusions: Students in an introductory programming course performed better on initial assessments when they received instructions that used our intervention, subgoal labels. Though the students did not perform better than the control group on exams on average, they were less likely to get failing grades or to drop the course. Overall, subgoal labels seemed especially effective for students who might otherwise struggle to pass or complete the course.