skip to main content

Title: Growing Mindsets: Debugging by Design to Promote Students’ Growth Mindset Practices in Computer Science Class.
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.
; ;
de Vries, E.; Hod, Y.; Ahn, J.
Award ID(s):
Publication Date:
Journal Name:
Proceedings of the 15th International Conference of the Learning Sciences - ICLS 2021
Sponsoring Org:
National Science Foundation
More Like this
  1. Undergraduate programs in computer science (CS) face high dropout rates, and many students struggle while learning to program. Studies show that perceived programming ability is a significant factor in students' decision to major in CS. Fortunately, psychology research shows that promoting the growth mindset, or the belief that intelligence grows with effort, can improve student persistence and performance. However, mindset interventions have been less successful in CS than in other domains. We conducted a small-scale interview study to explore how CS students talk about their intelligence, mindsets, and programming behaviors. We found that students' mindsets rarely aligned with definitions in the literature; some present mindsets that combine fixed and growth attributes, while others behave in ways that do not align with their mindsets. We also found that students frequently evaluate their self-efficacy by appraising their programming intelligence, using surprising criteria like typing speed and ease of debugging to measure ability. We conducted a survey study with 103 students to explore these self-assessment criteria further, and found that students use varying and conflicting criteria to evaluate intelligence in CS. We believe the criteria that students choose may interact with mindsets and impact their motivation and approach to programming, which could helpmore »explain the limited success of mindset interventions in CS.« less
  2. Teacher professional development (PD) is a key factor in enabling teachers to develop mindsets and skills that positively impact students. It is also a key step in building capacity for computer science (CS) education in K-12 schools. Successful CS PD meets primary learning goals and enable teachers to grow their self-efficacy, asset and equity mindset, and interest in teaching CS. As part of a larger study, we conducted a secondary analysis of CS PD evaluation instruments (). We found that instruments across providers were highly dissimilar with limited data collected for measures related to teacher learning, which has implications for future K-12 CS education. Likewise, the instruments were limited in being connected to student learning and academic growth. As a way to enable PD providers to construct measures that align with known impacting factors, we offer recommendations for collecting demographic data and measuring program satisfaction, content knowledge, pedagogical content knowledge, growth and equity mindset, and self-efficacy. We also highlight questions for PD providers to consider when constructing their evaluation, including reflecting community values, the goals of the PD, and how the data collected will be used to continually improve CS programs.
  3. Gresalfi, M. ; Horn, I. (Ed.)
    The design of most learning environments focuses on supporting students in making, constructing, and putting together projects on and off the screen, with much less attention paid to the many issues—problems, bugs, or traps—that students invariably encounter along the way. In this symposium, we present different theoretical and disciplinary perspectives on understanding how learners engage in debugging applications on and off screen, examine learners’ mindsets about debugging from middle school to college students and teachers, and present pedagogical approaches that promote strategies for debugging problems, even having learners themselves design problems for others. We contend that learning to identify and fix problems—debug, troubleshoot, or get unstuck—in completing projects provides a productive space in which to explore multiple theoretical perspectives that can contribute to our understanding of learning and teaching critical strategies for dealing with challenges in learning activities and environments.
  4. 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 ownmore »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.« less
  5. Few studies have examined the role of failure in more open-ended situations where problems develop as a consequence of designing projects and where collaborations can emerge as an outgrowth of debugging said problems. In this paper, we explore the peer-to-peer collaborations that emerge spontaneously in the context of coding, crafting and design bugs within open-ended design activities, specifically an electronic textiles unit for secondary students taught over 10-12 weeks in introductory computer science classes. Examining observations from three introductory computer science classrooms, we address the following research questions: (1) How and what kinds of peer-to-peer collaborations emerged in unstructured ways, especially around bugs in open-ended projects? and (2) What curricular, spatial, social, and teacher supports allowed these interactions to emerge and flourish? In the discussion, we consider implications for supporting similar types of emergent collaborative learning in open-ended computational making designs.