Objectives. Physical computing systems are increasingly being integrated into secondary school science and STEM instruction, yet little is known about how teachers, especially those with little background and experience in computing, help students during the inevitable debugging moments that arise. In this article, we describe a framework, comprising two dimensions, for characterizing how teachers support students as they debug a physical computing system called the Data Sensor Hub (DASH). The DASH enables students to program sensors to measure, analyze, and visualize data as they engage in science inquiry activities. Participants. Five secondary school teachers implemented an inquiry-oriented instructional unit designed to introduce students to working with the DASH as a tool for scientific inquiry. Study Method. Findings drew on video analysis of the teachers’ classroom implementations of the unit. A review of the data corpus led to the selection of 23 moments where the teachers supported an individual or small groups of students engaged in debugging. These moments were analyzed using a grounded perspective based on Interaction Analysis to characterize the teachers’ varied interactional approaches. Findings. Our analysis revealed how teachers’ moves during debugging moments fell along two dimensions. The first dimension characterizes teachers’ positioning during the debugging interactions, ranging from a positioning for teacher understanding to a positioning for student understanding of the bug. The second dimension characterizes the inquiry orientation of the teachers’ questions and guidance, ranging from focusing on the debugging process to focusing on the product—or fixing the bug. Further, teachers’ moves often fell along different points on these dimensions given nuances in the instructional context. Conclusions. The framework offers a first step toward characterizing teachers’ debugging pedagogy as they support students during debugging moments. It also calls attention to how teachers do not necessarily need to be programming experts to effectively help students learn independent and generalizable debugging strategies. Further, it illustrates the variety of expertise that teachers can bring to debugging moments to support students learning to debug. Finally, the framework provides implications for the design of professional learning and supports for teachers as they increasingly are asked to support students in computing—and debugging—activities across a range of disciplines.
more »
« less
An Analysis of Middle Grade Teachers' Debugging Pedagogical Content Knowledge
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
- Award ID(s):
- 1738758
- PAR ID:
- 10382318
- Date Published:
- Journal Name:
- The 27th ACM Conference on Innovation and Technology in Computer Science Education
- Volume:
- 1
- Page Range / eLocation ID:
- 533 to 539
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
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
-
B. Tangney, J. Bryne (Ed.)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
-
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
-
Compiler bugs are extremely harmful, but are notoriously difficult to debug because compiler bugs usually produce few debugging information. Given a bug-triggering test program for a compiler, hundreds of compiler files are usually involved during compilation, and thus are suspect buggy files. Although there are lots of automated bug isolation techniques, they are not applicable to compilers due to the scalability or effectiveness problem. To solve this problem, in this paper, we transform the compiler bug isolation problem into a search problem, i.e., searching for a set of effective witness test programs that are able to eliminate innocent compiler files from suspects. Based on this intuition, we propose an automated compiler bug isolation technique, DiWi, which (1) proposes a heuristic-based search strategy to generate such a set of effective witness test programs via applying our designed witnessing mutation rules to the given failing test program, and (2) compares their coverage to isolate bugs following the practice of spectrum-based bug isolation. The experimental results on 90 real bugs from popular GCC and LLVM compilers show that DiWi effectively isolates 66.67%/78.89% bugs within Top-10/Top-20 compiler files, significantly outperforming state-of-the-art bug isolation techniques.more » « less
An official website of the United States government

