Skip to main content
Skip to Main Content
Skip to main content
Navigation

An Interview with Dr. David Weintrop, UMD

Watch this discussion between Jason McKenna and Dr. David Weintrop, Assistant Professor at the University of Maryland to learn more about computer science education. David discusses the evolution of computer science education availability over the past 10 years. Developing computer literacy and computational thinking are vital now, just as language arts have been, regardless of career paths.

Welcome. My name is James McKenna, the Director of Global Educational Strategy for VEX Robotics, and it's my pleasure to be here with David Weintrop, Associate Professor, University of Maryland.

Welcome.

Thank you. Wonderful for you to be here. Appreciate your time talking to me about computer science education. Something that we're both fairly passionate about, I guess would be a fair statement to say. If someone were to ask you the state of computer science education today and how it's grown over the last few years, how would you summarize that and give your encapsulation of that?

The availability of courses across K-12 education looks a lot better now. The landscape looks a lot better now than it did five years ago, ten years ago. But we're not yet to the point that every student has access to high-quality computer science education across K-12. We're not yet to the point where every school has qualified, capable teachers to teach these classes. So, yeah, better now than it was a decade ago, but still lots of work to do.

Along those lines, since computer science is such a young discipline being introduced in K-12 education, there are still a lot of basic questions out there simply around why. So if I'm a third-grade teacher, why is it important for me to teach computer science? If I'm a high school teacher, why is it important to me to teach computer science? We oftentimes don't like to treat education as a job apprenticeship program, but in explaining why a computer science education, that's often the answer. There are only jobs out there. So beyond that, why is it important for students to learn computer science?

I think a good way to answer the question of why computer science is important is by asking people to reflect on the role that technologies powered by computing and tools developed by computer scientists have in their lives. This might mean thinking about how often they check their phones. This is thinking about what it looks like for them to communicate with friends, for them to relax, for them to do their job, whether or not it's directly related to computing.

Part of it is still kind of in this job preparation, but not to train students to be computer scientists, but just acknowledging if you're going to be a teacher or being able to use technology is productive. If you want to be a journalist, if you want to be an economist, if you want to work in advertising, if you want to work in entertainment, all of these things are increasingly computational or technological endeavors, or at least technology and computing play a part in that.

Independent of those things, just what it means to be an informed citizen today in terms of making informed decisions about the rise of companies collecting vast amounts of data about individuals as a consumer and someone who uses apps and engages in online discourse, being able to make an informed decision about what I think about people using my data. The data's mine. How can I be an informed citizen, an informed voter about making sure that technology is used in ways that I'm comfortable with and I'm using technology in ways that I'm comfortable with? All of those things contribute to what I think it means to be an informed citizen in our increasingly technological world.

Just like we don't expect everyone taking high school biology to be a biologist, we don't necessarily expect everyone taking computer science to be a computer scientist.

Yeah, 100%. And I think even beyond that, bringing that parallel over to the English language arts, we don't expect everyone to be a novelist, but being able to read and make meaning from what you've read, and also being able to communicate in a written form.

Thank you for joining us today and sharing your insights on this important topic.

These are essential skills. Whether or not your profession is directly related to what we think of as English language arts is preparing someone for preparing something, for translating that over to computer science, right? It's not about necessarily being a software developer or a computer engineer, but just having those basic skills and basic literacy can be really valuable. Yeah, navigating the world both professionally and personally.

So just to carry that analogy one step further, I don't have to be a published author to teach fifth-grade language arts. I don't have to be a professional mathematician to teach high school math. I think a big barrier that we have with our educators is they feel like they do have to be a computer scientist to teach CS. But I think we both agree that's not necessarily true. Yeah, absolutely. That is not the case. I mean, there's nothing wrong with being a professional about other into education becoming a teacher.

And I think part of that, and this gets back to some of what we talked about earlier in terms of the fact that things are getting better in terms of more opportunities and more people taking computer science. For people who've never taken a computer science class, the idea of teaching computer science can be really daunting. For people who've never had experience writing programs or trying to solve problems using computational thinking, or had the kind of terminology and technical skills in support of these computational thinking skills, it can be really intimidating and daunting.

We have these on-ramps built in place, but also as more students going through K-12 have more and more computer science opportunities, that initial barrier to entry and kind of that initial potential fear and intimidation around computer science will fade away just because it's a generation of teachers who grew up taking computer science, a generation of teachers who grow up with smartphones in their pockets and kind of thinking about computing and technology in daily life.

You mentioned computational thinking. Help someone watching this video understand the differences or if there is a difference between computer science and computational thinking, because that's something you hear a lot about in education right now. The need to teach computational thinking. Yeah, the way that I think about computational thinking is it's a useful way to talk about the intersection of ideas and skills from computer science with disciplines and practices and spheres outside of just computer science.

So the definition that I like to fall back on for computational thinking is using ideas and practices from computer science to solve problems generally. And so in the context of a specific computer science class, we're often thinking about writing programs and developing algorithms for specific kinds of computational problems, where computational thinking is those same practices employed in a science class, can be the same practices employed in a science classroom or in a social science classroom, in the language arts classroom.

And again, it comes back to this idea that the world is becoming an increasingly computational place. And so what it means to "do science" or "do math" involves computing and computation and computational tools. So computational thinking is a way of talking about those skills and practices that can be used in these other contexts.

You know, it's interesting you talked about the world becoming more computational, but the kind of parallel to that is the more that we've learned about the world, we understand that there are things naturally in the world that are computational. An example of that I used to teach cell division when I taught sixth grade, and you would have the kids draw the cells and they'd map everything inside of the cells, and you draw the two separate parts, you draw the stages.

Thank you for taking the time to explore these ideas with us. We hope this discussion has provided valuable insights into the importance of computational thinking and its role in education.

Final message: As we continue to integrate technology into our lives, understanding and teaching computational thinking will be crucial for future generations. Let's work together to make these concepts accessible and engaging for all learners.

I've learned since that point that we really don't know what cells look like on the inside because they're constantly changing. And so we use tools like artificial intelligence now to learn exactly how complex cells actually are, which gives rise to entirely new fields like computational biology.

So you wrote a paper I read years ago that was a big influence on me, talking about how all modern-day mathematicians and scientists use computation. We did talk about how you don't necessarily have to learn computer science to be a computer scientist, but you could potentially make an argument that you do need computer science to be able to explore these mathematical and scientific areas with these phenomena in a really significant way.

Yeah, and this gets back to the idea of computational thinking and the potential of using computational thinking in other disciplines like math and science. In that paper, we develop an argument where it's not just that computational thinking or using computing in a math or science classroom is more reflective of professional practice. It's not just a more authentic way to engage with the discipline because that's what it looks like it means to do computing.

So it's not just this one way that we're bringing computational thinking into math and science classrooms to make them authentic. But in doing so and bringing computational thinking into those classrooms, it provides new ways for students to engage with the content area and express those ideas. For example, with cell division and the different parts of cells, you can imagine students 20 years ago might have been drawing on a sheet of paper. Now, it could be developing and drawing in some kind of computer modeling simulation environment where you do the drawing, you do the labeling, but now you hit the play button, and you can see what happens from there.

You can see if the model that a student described or the functionality they gave to different parts of a cell or an organism, what happens when those are realized and enacted. It provides a new way for students to explore these different ideas. The idea here is there's this kind of mutual support, that computing and computational thinking can help support deeper ways to engage with content while also providing a more authentic, more realistic way of exploring and engaging with the discipline.

So when you talk about a deeper understanding of content moving from computer science to computational thinking, you kind of have what I refer to as basic computing, where a student understands some commands and something happens. Then you move into computer science and this idea of computational thinking. Unfortunately, in education right now, we sometimes get very tactical and have long discussions about whether to start learning with Python, Java, or blocks. But really, we're trying to develop that understanding that can then be applied to any of those different tools you can use to teach computer science.

To that end, in computer science education, we talk a lot about this idea of students developing a mental model. Essentially, not just guessing and checking their way to a solution, but developing a mental model, a conceptual understanding of what they're trying to do from a coding standpoint. Can you talk about that a little bit, please?

Part of this ties into the earlier conversation, the idea that as more and more different disciplines and parts of our lives are becoming computational, having the same ideas be introduced across different disciplines and contexts is crucial.

Thank you for the opportunity to discuss these important topics. I hope this conversation has been insightful and encourages further exploration into the integration of computational thinking across various fields.

So developing computational models in biology, writing, creating kind of like digitally enhanced stories in an English language arts class, modeling population growth in a math or economics class, or something like that. Underlying all those things, getting back to computational thinking, are the same kind of conceptual building blocks that come back to what are computers good at, how do we represent ideas in ways that computers can take advantage of?

At the same time, what are the things that we as humans, with our own kind of knowledge and intuitions and ideas and creativity, bring to the table? What are the parts of the problem that are unique to us, that we shouldn't or can't offload to computers? What's shared across these different disciplines is knowing the capabilities and limitations of what computers can and can't do, and the way that we express ideas so that computers can help us solve them.

Reframing problems or reframing the thing that we're trying to do in such a way that we can use those shared building blocks to help us do the thing that we want to do or help a student understand the thing that we want a student to understand is crucial. Once you have those shared building blocks, I refer to that as the superpower of that, because now you can apply that not just to computer science, but maybe you're interested in data science, cybersecurity, or artificial intelligence. You're interested in all these, for lack of a better term, "subsets" of computer science that allow you to do so much more with it. They really allow you to explore all these different things with it.

Can you talk about that a little bit? We kind of started this conversation talking about the growth of computer science education. The challenges as educators that we have is the fact that computer science has also changed so much. So computer science ten years ago was about loops and conditional statements and things like that. Ben Shapiro has written a lot about the fact that computer science is more than that now, but computer science is about AI and machine learning and those types of things. So talk a little bit about how computer science has changed and how that impacts what we're doing from an educational perspective.

Yeah, good question. Hard question. Yes. So, one thing to say is, while computer science is changing, what computer science was ten years ago is not that it is no longer computer science. The way that I see it is more that what computer science is is rapidly growing as opposed to shifting into something different than what it was before.

What that means is, on the one hand, it feels like there's more for us to do in terms of, as computer science becomes more things, figuring out ways to make those more things accessible, intuitive, and finding a home for them in a K-12 or K-16 learning trajectory. So that's one part of it. A second part of it is this idea of future-proofing, which by that I mean, and this gets back to these fundamental building blocks of understanding what computers can do, what they can't do, and what assumptions need to be made in terms of using technology in particular ways or where the limitations of computing lie.

Helping students understand where those limits are is productive because then as new technologies emerge, because those technologies are built on the same foundational principles, that provides learners with a toolkit to make sense of these new technologies as they emerge.

Thank you for the opportunity to discuss these important topics. I hope this conversation has provided some valuable insights into the evolving field of computer science education.

And at the same time, it's also a challenge for us in the education community to try and keep pace with these new technologies as they emerge. The challenge is exactly what you said: for us as educators to understand that the fundamentals don't change, but the applications thereof can change. It's like any other subject. I can learn the basics of language arts in K to five. I could then expand upon that with writing courses in middle school, and then I can go to high school and study Shakespeare if I want. I can study more writing classes if I want, I can do more comp classes. I can study British history and English, British, right? There are all these different applications that I can utilize to understand the fundamentals. I think that's really just the same thing with computer science. But once we understand those fundamentals well, that's why I keep saying it's a superpower: It can be applied to any of those particular things. So I think that's a really interesting way to look at it.

So just to kind of wrap this up then, if you had to give advice to a brand new computer science teacher that's just getting started, teaching computer science, well, that's a middle school that might be a little bit nervous. What advice would you give them about getting started teaching computer science?

Great question. I think the advice is to not be afraid to not know the answer. I think there is a really productive pedagogical practice of showing students what it looks like to not know the answer or what it looks like to write a program that's buggy, what it looks like to debug programs, what it looks like to use the Internet or use other resources to try and solve problems. In some ways, that can be a really scary thing for teachers, especially coming from a more traditional background where the teacher is the...

"Sage on the Stage."

Exactly. But that's not what computer science looks like. That's not what computer science is like. Part of what it means to do computer science is to write buggy programs and to debug things, to figure things out. And this gets back to the idea of computer science always changing and new things emerging and new technologies, new tools, new challenges. Showing students what it looks like to learn with computers, learn about computers. Yeah, jump in and have fun. There are lots of opportunities to do fun, creative, interesting things with computer science that it's harder to figure out what the equivalent would be in math or science, where the curriculum might be a bit more regimented, or there might not be so many opportunities to bring ideas from the classroom and connect them with student interest outside of the classroom. So, the short version of the advice is jump in and have fun. Don't be afraid. Jump in, have fun. Don't be afraid. Don't be afraid to make mistakes. Like you said, the funny thing about computer science is every piece of code out there has a bug in it. So there's no basis with that at all.

Well, thank you very much for joining us. I hope you're able to take some good tips, some good things to think about the application of computer science in the classroom, computer science education globally with you.

Thank you, David, for your time. Chat with you soon.

Share

Like this video? Share it with others!

Additional Resources

Like this video? Discuss it in the VEX Professional Learning Community.