skip to main content


Title: Rethinking Debugging as Productive Failure for CS Education
Computational thinking has become the calling card for re-introducing coding into schools. While much attention has focused on how students engage in designing systems, applications, and other computational artifacts as a measure of success for computational thinking, far fewer efforts have focused on what goes into remediating problems in designing systems and interactions because learners invariably make mistakes that need fixing-or debugging. In this panel, we examine the often overlooked practice of debugging that presents significant learning challenges (and opportunities) to students in completing assignments and instructional challenges to teachers in helping students to succeed in their classrooms. The panel participants will review what we know and don't know about debugging, discuss ways to conceptualize and study debugging, and present instructional approaches for helping teachers and students to engage productively in debugging situations.  more » « less
Award ID(s):
1742140
NSF-PAR ID:
10101543
Author(s) / Creator(s):
; ; ; ;
Date Published:
Journal Name:
SIGCSE '19 Proceedings of the 50th ACM Technical Symposium on Computer Science Education
Page Range / eLocation ID:
169 to 170
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Gresalfi, M. and (Ed.)
    Teachers in K-12 science classrooms play a key role in helping their students engage in computational thinking (CT) activities that reflect authentic science practices. However, we know less about how to support teachers in integrating CT into their classrooms. This paper presents a case of one science teacher over three years as she participated in a Design Based Implementation Research project focused on integrating CT into science curriculum. We analyze her professional growth as a designer and instructor as she created and implemented three computationally-enriched science units with the support of our research team. Results suggest that she became more confident in her understanding of and ability, leading to greater integration of CT in the science units. Relationships with the research team and co-design experiences mediated this growth. Findings yield implications for how best to support teachers in collaborative curriculum design. 
    more » « less
  2. There is an increasing need for knowledgeable K-12 computer science (CS) teachers. It is necessary to inform teachers how to debug and help their students debug programs. Research has shown that debugging is difficult for novices because the process requires different skills from creating programs and instructing students how to debug can help them acquire these skills. To this end, we developed a CS professional development for middle grade teachers (grades 5th-8th/ages 10-13) that includes lessons on debugging. The teachers completed debugging activities that involved finding bugs in Scratch programs and explaining how they would help their students in debugging. We qualitatively analyzed their responses and found that teachers successfully identified the problem but they struggled to locate it in the code. In considering how they would help students who had such a bug, the teachers often focused on helping the student find a solution for the bug rather than on identifying the problem or its source. Finally, teachers’ ability to identify bugs and the pedagogical strategies to engage students in this process differed based on CS teaching experience and prior CS knowledge. This work contributes to our understanding of teachers’ debugging abilities and advances our knowledge on how to support teachers in teaching their students how to debug their programs. 
    more » « less
  3. Gresalfi, M. ; Horn, I. (Ed.)
    Much attention has focused on student learning while making physical computational artifacts such as robots or electronic textiles, but little is known about how students engage with the hardware and software debugging issues that often arise. In order to better understand students’ debugging strategies and practices, we conducted and video-recorded eight think- aloud sessions (~45 minutes each) of high school student pairs debugging electronic textiles projects with researcher-designed programming and circuitry/crafting bugs. We analyzed each video to understand pairs’ debugging strategies and practices in navigating the multi- representational problem space. Our findings reveal the importance of employing system-level strategies while debugging physical computing systems, and of coordinating between various components of physical computing systems, for instance between the physical artifact, representations on paper, and the onscreen programming environment. We discuss the implications of our findings for future research and designing instruction and tools for learning with and debugging physical computing systems. 
    more » « less
  4. null (Ed.)
    The increased push for access to computer science (CS) at the K-12 level has been argued as a way to broaden participation in computing. At the elementary level, computational thinking (CT) has been used as a framework for bringing CS ideas into the classroom and educating teachers about how they can integrate CT into their daily instruction. A number of these projects have made equity a central goal of their work by working in schools with diverse racial, linguistic, and economic diversity. However, we know little about whether and how teachers equitably engage students in CT during their classroom instruction– particularly during science and math lessons. In this paper, we present an approach to analyzing classroom instructional videos using the EQUIP tool (https://www.equip.ninja/). The purpose of this tool is to examine the quantity and quality of students’ contributions during CT-integrated math and science lessons and how it differs based on demographic markers. We highlight this approach using classroom video observation from four teachers and discuss future work in this area. 
    more » « less
  5. Much attention has focused on designing tools and activities that support learners in designing fully finished and functional applications such as games, robots, or e-textiles to be shared with others. But helping students learn to debug their applications often takes on a surprisingly more instructionist stance by giving them checklists, teaching them strategies or providing them with test programs. The idea of designing bugs for learning—or debugging by design—makes learners again agents of their own learning and, more importantly, of making and solving mistakes. In this paper, we report on our first implementation of “debugging by design” activities in a classroom of 25 high school students over a period of eight hours as part of a longer e-textiles unit. Here students were asked to craft buggy circuits and code for their peers to solve. In this paper we introduce the design of the debugging by design unit and, drawing on observations and interviews with students and the teacher, address the following research questions: (1) What did students gain from designing and solving bugs for others? (2) How did this experience shape students’ completion of the e-textiles unit? In the discussion, we address how debugging by design contributes to students’ learning of debugging skills. 
    more » « less