The art of debugging & how to think like a computer scientist

The Art of Debugging & How to Think Like a Computer Scientist (feat. Dr. Aman Yadav from Michigan State University)
Meet Dr. Aman Yadav, a professor of educational psychology and educational technology at Michigan State University, who shares his insights on the rich applications of both "plugged" and "unplugged" computational thinking for the K-12 classroom and sheds light on the biased algorithms that govern our everyday lives.

. . .Or listen instead on Apple, Spotify, Google, or another platform.

When you think of debugging, you probably don’t think of math problems. 

Similarly, when you hear the term “computational thinking,” the first thing that comes to mind probably isn’t a high school art classroom.

But there are parallels here. And the field of computer science has more to offer educators than meets the eye. 

This week on the BRIGHT podcast, I chat with Dr. Aman Yadav, a professor of educational psychology and educational technology at Michigan State University, who sheds light on:

  • The rich applications of both ‘plugged’ and ‘unplugged computational thinking’ for the K-12 classroom
  • The lesser-known field of justice-oriented computer science, and
  •  The biased algorithms that govern our everyday lives.

You can listen to our conversation using the audio player above or keep scrolling to read an edited version of the transcript!

Here’s a sneak peek at our conversation:

Edited transcript

Nikki: Thank you for joining us today, Aman. To kick us off, can you tell us a little bit about yourself and what you do?

Aman: Thanks for having me. I’m a professor in the college of education at Michigan State University in the educational psychology and educational technology program. Broadly, I do research and teach courses within our educational technology master’s program and our doctoral program in edtech. 

My research focuses on how elementary and middle school teachers can bring computational thinking and computer science into their classrooms to support disciplinary learning. At the elementary level, we have a project called CT4EDU, where we’re working with teachers to bring computational thinking into their math and science instruction. Again, the goal is to use CT — computational thinking — to enhance students’ learning and understanding of mathematical and scientific ideas. 

At the middle school level, the project is called iCT. Because, you know, if you add an “i” in front of anything, it becomes cool, like “iPhone” or “iPad.” Within that project, we’re working with middle school teachers to bring computational thinking into social studies, English language arts, and art. Those are the three disciplines at the middle school level. Often, when we think about computing, we don’t think about how it intersects with those three disciplines. But broadly, yes, I teach courses in computer science education and do research in computer science education.

Nikki: So, you’re a computational thinking expert, but not everybody listening may have heard of that term before. How would you define the term “computational thinking”? How do you describe it around the dinner table or to the educators who aren’t familiar?

Aman: You know, you could talk to ten people like me and might get ten different definitions of what “computational thinking” is and how we should do it. But it’s a great question. The idea of computational thinking has been around since the 1980s when Seymour Papert, who was at MIT, talked about how computers can be used as a tool to think with. This gained popularity within K-12 education and higher education in 2006 after Jeannette Wing published an article on computational thinking. 

Broadly, I would define “computational thinking” as a set of practices that computer scientists draw upon that everybody should learn. This includes practices like algorithm design and debugging. If I talk to somebody who might not know what an algorithm is — which has happened in some of my conversations with teachers — and they think, well, that’s math, right? Or that’s science. But designing an algorithm really means developing step-by-step instructions to solve a problem. 

Debugging involves fixing and finding errors if these steps don’t lead to the desired solution. Within computer science, an example is when you write code, but it doesn’t work, so you debug it, right? You go back and fix it so that you can get the desired output. We also write algorithms in our daily lives when we write a recipe to cook something, and then we tweak the recipe to get the desired taste that we want. So, algorithm design and debugging are two of the practices used in computer science that fall within computational thinking.

Nikki: So, you’re kind of saying that you can take this framework, this way of thinking, these processes, and you can apply them to a variety of different problems? You said you’ve been expanding computational thinking into the art classroom and the ELA classroom. Have you seen any interesting projects that have emerged from this work? 

Aman: One of the goals of computational thinking is to bring more computationally rich experiences into the classroom. We can’t just say, “Oh, just use algorithms,” and then say, okay, you’re done with computer science, right? That’s one of my fears. We don’t want computational thinking to serve as a checkbox for computer science experiences. We want teachers to bring in more computationally rich experiences. 

An example within art might be teachers helping students use physical computing devices — such as Arduino — to add lights and movement into their art projects. Then it’s not just a 3D project. It’s a 4D project, so to speak, because kids are creating these sculptures that can play music and have sensors that if you bring your hand near the face, they move because there’s a light sensor there. They have these motors that allow them to move. That’s an example of how computational thinking can be used to enhance our projects and art instruction.

Nikki: Very cool. I presume the student also then learns how to do some programming to power that tool?

Aman: Yes, but it also goes back to the fact that they’re using computational tools and devices and practices for their personal agency and to express their creativity.

Nikki: What advice would you give to a K-12 teacher who was intrigued by the concept of “computational thinking”? Perhaps it’s a bit new to them, but they want to try it out in their classroom. Where would you advise that they start?

Aman: Get in touch with us? I’m only half kidding. I love working with teachers. I’ve learned a lot from working with teachers and being in classrooms. It keeps me grounded in problems of practice that teachers face. 

One thing that we need to do is we need to make sure that teachers are supported in bringing computational thinking into their classroom. It’s not intended to be an add-on to an already overburdened teacher. We need to make sure that computational thinking is used to support their disciplinary learning goals, right? How can CT support their students’ learning in the content areas they’re teaching, whether through using a computing device or without one? 

With a computing device, the term here is “plugged computational thinking.” Without a computing device, the term is “unplugged computational thinking.” For teachers to bring CT into their classrooms, it’s important first to explore what CT practices are. What does it mean to design an algorithm, to debug, or to decompose something?

Decomposition is another CT practice, which explores: How do you break a complex problem down into smaller, more manageable parts? Within math, a teacher could use decomposition as a way to help their students solve math problems. How can we break this complex math problem into smaller, more manageable problems that might be easier to solve, right? 

To do that, it’s first important to take a deep dive into what these practices are and how they intersect with your learning goals within whatever discipline you’re teaching. Then, once they start, teachers start seeing connections between CT and their disciplinary learning goals. We also want to push their thinking to bring more computing-rich experiences into the classroom, so students see how CT practices are used in programming and using physical computing devices.

Nikki: From your perspective, what is it that students walk away with after these activities? Why is it so exciting?

Aman: Yeah, so I’ll give an example of “unplugged computational thinking,” so not using a computing device. In our work, the idea of “debugging” has changed the culture of learning mathematics in elementary classrooms. Typically, you know, students might see math as if you get a right answer or you get a wrong answer. Debugging has changed how we approach math because it’s okay not to get the right answer the first time. Because we can go back and debug it. What steps were wrong? How can we fix the errors that we had? That’s huge, right? 

Even though our goal was to use computational thinking as an on-ramp to bring more computer science into the classroom, this finding shows that teachers are using CT as a metacognitive approach. They’re providing kids with opportunities to think about their own thinking. That’s been huge. It’s an interesting finding that has implications for learning math, literacy, science, etc. We need those skills. It’s not just all about computer science.

From a plugged computational thinking perspective, teachers can use a scratch programming environment to teach a math problem or allow students to explore a math idea. With this approach, kids interact with code, write code, or use an existing starter code. The “aha moments” that they can have not only using a computer as an object to think with, as Seymour Papert would say, but also manipulating the objects on the computer. That’s exciting, right? There’s excitement and engagement in the classroom when a student debugs a code and gets it to work. That’s phenomenal.

Nikki: It’s interesting because I recently spoke to another teacher on the podcast. When I asked her about her favorite teacher, she spoke about a specific instance in seventh grade where her math teacher explained to her it’s okay if you get the problem wrong the first time. It was eye-opening to her because, as you described, many kids think with math, for whatever reason, that you have to get it right the first time. So, it’s cool to hear you know that you’re working on expanding that experience for kids all over the state.

Aman: As I said earlier, that’s been an interesting finding that we didn’t expect. We’re still using CT as an on-ramp for computer science, but it’s having all these benefits for kids in disciplines where teachers are implementing CT. 

The role that standardized testing has played is suggesting you need to get the right answer the first time. It pays into kids and teachers feeling pressure to make sure that kids solve the right way. But if we just approach how our teachers and students are approaching math now — and how the culture of learning math has changed —  that will naturally lead to increases in math scores. We’re collaborating with teachers and schools in Oakland County here in Michigan. One teacher sent me a note that her math scores on the standardized testing went up since she started implementing computational thinking in a classroom. That’s a huge result, a very important result.

Nikki: Another passion area that you mentioned is justice-oriented computer science. I’ve never heard of that before, and I’m sure others are listening who haven’t heard of it either. Can you tell us what that’s all about and what applications it has for the K-12 classroom?

Aman: There are two aspects to justice-oriented computer science that I think are important. One of them is broadening participation in computer science to get more women and students of color pursuing computer science. I think we have done a great job, but we’re not there yet. We continue to build by increasing the number of women and Black and brown students taking computer science in Michigan and across the country. 

How do we continue to do that? One of the benefits of computer science I mentioned earlier is that it allows students to use their personal agency and express their creativity. We can build on that in computer science by leveraging and bringing students’ lived experiences — and the communities in which they live — by centering these things in computer science classrooms. So, engaging community partners, families, and students into the design of the CS curriculum and teaching of the CS curriculum. 

The second part of justice-oriented computer science is that we need to address the colorblind racism that exists in the computing industry. The discrimination and biases that structure our larger society are coded into technologies. An example of this is when the artificial intelligence in Google face recognition services organizes photos of Black youth into a folder labeled “gorillas.” That’s an example of how colorblind racism, bias, and discrimination are baked into those technologies. 

We need to re-examine the basic assumptions of how technologies are designed and implemented, as well as the role computer science plays in the design and implementation of those technologies. We need to bring criticality to computer science in K-12 classrooms. We need to center our students’ lived experiences, and we need to bring criticality to computer science and acknowledge the role of computer science in perpetuating racism in society.

Nikki: So for the K-12 classrooms, is it, in part, just making students aware of these sorts of things? I think people tend to assume that algorithms are unbiased, that just because it’s a computer, there isn’t a bias.

Aman: When we think of how a computer or an algorithm running behind it could be biased, there are plenty of examples. For example, facial recognition technology being biased by misidentifying Black and brown people. So when we assume that algorithms are not biased, but people continue to use them, then these algorithms and technologies continue to oppress and harm Black and brown communities. We need to address this.

We need to make sure that students who are studying computer science are aware of these biases. How is it that an algorithm designed for prison sentences is biased towards Black and brown men and gives sentencing guidelines to judges that put Black and brown men in prison for more time than white men for similar crimes? That algorithm is biased, right? Because it’s using racialized data. 

Ruha Benjamin is a scholar who has a great book, Race After Technology, that addresses many of these issues, which I think folks should definitely read. Another book is Algorithms of Oppression by Dr. Safiya Umoja Noble, which is also worth reading.

Nikki: This could get us down a rabbit hole, but we’ll see. Is the issue, in part, how the machine or the algorithm inherits the creator’s bias? Or is that also what you described, where the data sets are biased that the machine is inputting?

Aman: I think it’s both. The data used to train these artificial intelligence algorithms is biased because it’s racialized and gendered. But also, people that are designing the technologies are often white and Asian males, who don’t have the same experiences that Black and brown men and women have had, which means these biases come into the design of technologies. So, I think it’s both.

Nikki: The first path of justice-oriented computer science that you described was about incorporating students’ lived experiences. You were talking about incorporating the communities in which students live into lessons. Are there any concrete examples that come to mind?

Aman: Yeah, my colleague Michael Lachney and I, along with a couple of our graduate students, have been asking: What does the intersection of formal education and community-based design of computer science curriculum look like? One of the concrete things that teachers can do is go beyond the school walls and into community spaces where students live. So, I think that’s one of the things that teachers need to do. We can’t just drive into our schools from the suburbs, go to our classrooms, teach, and not be in those community spaces in which students live. I think that’s incredibly important. 

Here’s an example of what culturally responsive computing might look like that centers students and the community in a computer science classroom. My colleague Michael Lachney wrote this piece on how CRC — culturally responsive computing — can be used within a computer science classroom by making it meaningful to students, their families, and their communities. 

The example that we gave in that paper is of a high school computer science teacher and a cosmetologist collaborating to use these culturally situated design tools and programming them to design cornrow curves. Again, it’s about bringing an example from students’ lives into a formal computer science classroom. That’s an example of what it can look like.

Nikki: Very cool. Thank you. Something that’s come up across these interviews that I’ve conducted is, when it comes to equity in education, a big part of it is giving exposure to all students, not just those who live in higher socioeconomic areas. It’s about equal access to opportunity. One thing that strikes me, I suppose, is that, by incorporating this computational thinking in classrooms all over, you probably will naturally encourage more diversity and equity in computer science. Because then, women and students of color get the opportunity to participate at a young age and see that computer science is available to them as a career.

Aman: Yeah, I think increasing the representation of Black and brown students in computer science at the K-12 level, as well as at the undergraduate level, is important, so we have increased representation in the computing industry. And I think the CT work does that, so when kids in elementary school are learning to code, they understand what algorithms are, what debugging is like, as they move through their K-12 education. Computer science is not something that only certain kinds of kids do, right? Everybody can engage in thinking computationally and in computer science. 

The other part in terms of equity-focused and justice-oriented work, we can’t just stop at increasing representation. We do need to address the colorblind racism that exists in the computing industry, as I mentioned earlier, by bringing criticality into computer science in K-12 classrooms, so it’s not just something folks study at the undergraduate level or graduate level.

Nikki: Can you tell me about your favorite teacher and why they had such an impact on you?

Aman: My favorite teacher was my high school English teacher, even though I went into engineering. It’s cliché to say, but she was the first teacher who really provided me with the wings to fly and pursue the things I wanted to pursue. She treated me respectfully. Early on in high school, I wasn’t the most hardworking student, but she pushed my thinking in English, and that transferred to other areas within high school. She saw something in me. 

I grew up in India. I went to high school and undergraduate in India. She gave me more responsibilities in ways that pushed me to do better in high school, which led to undergraduate and then a master’s program and then to a Ph.D. When I was in high school, I don’t think my parents expected that I would be getting a master’s or a Ph.D. and end up as a full professor, but I attribute that to my high school English teacher, Mrs. Sharma.

Nikki: Thank you. Ah, man. I love that question, and I love the answers I get. It’s just good stuff, you know? This is another big question, but can you tell me about your vision for student learning? The way I break this down a bit is just to say: if it were up to you, Aman, what would you want to see for every student?

Aman: You know, computer science is important, and it plays a huge role in my work. So, certainly, I do believe that we need all students to gain exposure to computer science. But if I had to pick, computer science doesn’t make the cut for all students learning in K-12. Given what’s happening in our society, all students need to learn about 

how we continue to oppress and harm Black and brown communities and the role of the structures that are in place in our society. 

We need to continue to do that. White supremacy is not just the Ku Klux Klan and people marching with tiki torches. It’s a system of oppression that harms Black and brown communities, more so than others. I think that needs to be part of our conversations at the K-12 and undergraduate levels. As we start doing that, more of the criticality that I had mentioned wanting to see in computer science will naturally get there. So, I think that’s what’s important for all students to learn.

Nikki: I think that does tie into what you’ve described as the second branch of justice-oriented computer science and culturally responsive computing. I’m not an expert, so please correct me if I’m wrong, but I did watch a video on computational thinking, so I knew at least a little bit about your specialty before our interview, and it defined an algorithm as “a set of rules.” Perhaps that’s too simplistic, but if you think of it that way, then there are many algorithms that run our society, too, right? So, maybe if a student can understand how an algorithm could be biased, they could also understand how something more abstract such as laws and governance might also fall prey to the same sort of biases. 

Aman: Absolutely. I think that’s a great point. 

Nikki: What words of advice or encouragement would you offer to educators right now?

Aman: That’s a hard question. Because I think we need systemic change in how we treat education in this country and not hollow words of encouragement. Over the last 16 months, teachers have done an incredible job supporting our students in the classroom. I’m amazed at everything they did this past year, so I just don’t want to say words that might come across as simply words for encouragement, right? 

We need to take concrete steps to treat educators and teachers with respect and as professionals who know what’s happening in their classrooms, not simply babysitting kids or opening schools so adults can go to work. I think the federal and state governments need to get teachers’ voices in the room and at the table where decisions are being made. Politicians and school boards shouldn’t be making all the decisions if they do not have a background in the classroom or have never stepped foot inside a classroom. 

I learn a lot from working with teachers and collaborating with teachers and being in classroom spaces. The happiest days of my work are when I’m in a classroom seeing teachers in action. So, thank you to all the teachers out there. You’re amazing. I’m a big fan of public education and teachers. You know, teachers have made a huge difference in my life. We must recognize the work that teachers do. So, that’s all I have to say. Treat teachers with respect. Treat them as professionals and as people that know what’s going on in their classroom. Because they are the ones at the frontlines.

Related resources 

Picture of Nikki Herta

Nikki Herta

Nikki’s love for writing, editing and pedagogy brought her to Michigan Virtual as their Content Creator/Editor. A Michigan native, she studied writing at Grand Valley State University before continuing on to the University of Minnesota for her master’s degree. While there, she also taught first-year writing to college freshman. Outside of work, she enjoys hiking, playing table-top board games, and curling up in front of the fireplace with a good book and her sassy, ancient cat, Princess Eugene.

The Digital Backpack

Get our latest articles sent straight to your inbox every week!