- Award ID(s):
- NSF-PAR ID:
- Date Published:
- Journal Name:
- Conference Proceedings of International Conference on Computational Thinking Education 2018
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
Debugging, a recurrent practice while programming, can reveal significant information about student learning. Making electronic textile (e-textile) artifacts entails numerous opportunities for students to debug across circuitry, coding, crafting and designing domains. In this study, 69 high school students worked on a series of four different e-textiles projects over eight weeks as a part of their introductory computer science course. We analyzed debugging challenges and resolutions reported by students in their portfolios and interviews and found not only a wide range of computational concepts but also the development of specific computational practices such as being iterative and incremental in students’ debugging e-textiles projects. In the discussion, we address the need for more studies to recognize other computational practices such as abstraction and modularization, the potential of hybrid contexts for debugging, and the social aspects of debugging.more » « less
Much attention in constructionism has focused on designing tools and activities that support learners in designing fully finished and functional applications and artefacts 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 programmes. The idea of designing bugs for learning—or
debugging by design—makes learners agents of their own learning and, more importantly, of making and solving mistakes. In this paper, we report on our implementation of ‘Debugging by Design’ activities in a high school classroom over a period of 8 hours as part of an electronic textiles unit. Students were tasked to craft the electronic textile artefacts with problems or bugs for their peers to solve. Drawing on observations and interviews, we answer the following research questions: (1) How did students participate in making bugs for others? (2) What did students gain from designing and solving bugs for others? In the discussion, we address the opportunities and challenges that designing personally and socially meaningful failure artefacts provides for becoming objects‐to‐think‐with and objects‐to‐share‐with in student learning and promoting new directions in constructionism. Practitioner notes
What is already known about this topic
There is substantial evidence for the benefits of learning programming and debugging in the context of constructing personally relevant and complex artefacts, including electronic textiles.
Related, work on productive failure has demonstrated that providing learners with strategically difficult problems (in which they ‘fail’) equips them to better handle subsequent challenges.
What this paper adds
In this paper, we argue that designing bugs or ‘failure artefacts’ is as much a constructionist approach to learning as is designing fully functional artefacts.
We consider how ‘failure artefacts’ can be both objects‐to‐learn‐with and objects‐to‐share‐with.
We introduce the concept of ‘Debugging by Design’ (DbD) as a means to expand application of constructionism to the context of developing ‘failure artifacts’.
Implications for practice and/or policy
We conceptualise a new way to enable and empower students in debugging—by designing creative, multimodal buggy projects for others to solve.
The DbD approach may support students in near‐transfer of debugging and the beginning of a more systematic approach to debugging in later projects and should be explored in other domains beyond e‐textiles.
New studies should explore learning, design and teaching that empower students to design bugs in projects in mischievous and creative ways.
Today’s STEM classrooms have expanded the domain of computer science education from a basic two-toned terminal screen to now include helpful Integrated Development Environments(IDE) (BlueJ, Eclipse), block-based programming (MIT Scratch, Greenfoot), and even physical computing with embedded systems (Arduino, LEGO Mindstorm). But no matter which environment a student starts programming in, all students will eventually need help in finding and fixing bugs in their code. While the helpful IDE’s have debugger tools built in (breakpoints for pausing your program, ways to view/modify variable values, and "stepping" through code execution), in many of the other programming environments, students are limited to using print statements to try and "see" what is happening inside their program. Most students who learn to write code for Arduino microcontrollers will start within the Arduino IDE, but the official Arduino IDE does not currently provide any debugging tools. Instead, a student would have to move on to a professional IDE such as Atmel Studio or acquire a hardware debugger in order to add breakpoints or view their program’s variables. But each of these options has a steep learning curve, additional costs, and can require complex configurations. Based on research of student debugging practices[3, 7] and our own classroom observations, we have developed an Arduino software library, called Arduino Debugger, which provides some of these debugging tools (ex. breakpoints) while staying within the official Arduino IDE. This work continues a previous library, (redacted), which focused on features specific to e-textiles development boards. The Arduino Debugger library has been modified to support not only e-textile boards (Lilypad, Adafruit Circuit Playground) but most AVR and ARM based Arduino boards.We are also in the process of testing a set of Debugging Code Templates to see how they might increase student adoption of debugging tools.more » « less
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
de Vries, E. ; Hod, Y. ; Ahn, J. (Ed.)Mindsets play an important role in persevering in computer science: while some learners perceive bugs as opportunities for learning, others become frustrated with failure and see it as a challenge to their abilities. Yet few studies and interventions take into account the motivational and emotional aspects of debugging and how learning environments can actively promote growth mindsets. In this paper, we discuss growth mindset practices that students exhibited in “Debugging by Design,” an intervention created to empower students in debugging—by designing e-textiles projects with bugs for their peers to solve. Drawing on observations of four student groups in a high school classroom over a period of eight hours, we examine the practices students exhibited that demonstrate the development of growth mindset, and the contexts where these practices emerged. We discuss how our design-focused, practice-first approach may be particularly well suited for promoting growth mindset in domains such as computer science.more » « less