Join Upper School Computer Science Department Chair and Teacher Ash Hansberry, Middle School Computer Science Teacher Bobby Oommen and Lower School Computer Science and Technology Integration Specialist Fiona Deeney for a discussion about computational thinking and how it's woven into the curriculum at Latin.
Ash Hansberry: I’m Ash Hansberry and I am an upper school computer science teacher. I am also the Department Chair for the Computer Science Department.
Bobby Oommen: I'm Bobby Oommen, middle school computer science teacher.
Fiona Deeney: I'm Fiona Deeney, the lower school computer science and technology integration specialist.
What is computational thinking?
Computational thinking is a set of skills, a set of thought processes, around organizing problems in a strategic organized way. Hansberry: Computational thinking is really just a set of skills, a set of thought processes around organizing problems, in a strategic organized way. So when we're thinking about computational thinking, we're thinking, how do I take the problem and break it down in such a way that a computer could understand it? So that means something like breaking a problem that is big into a bunch of little pieces, developing algorithms or instructions for how you would solve that problem. And then things like finding potential bugs or errors or ways that your solution might go wrong so that you can refine your solution and make sure that it is bug free and clear enough that any computer could understand it.
How do skills in computational thinking allow students to solve complex problems?
Oommen: So, as Ash mentioned, there are several components of computational thinking. One is problem decomposition. And so that's really just taking a problem and breaking it down into its smaller parts. Secondly, pattern recognition. So identifying patterns and then being able to forecast or predict what would happen next. And then the third one is then developing an algorithm. So what is the step-by-step way to solve this problem? So I think that those three things alone are huge in helping students to solve problems because oftentimes a kid will look at a problem and just say like, I don't know, like what do I do next? And so helping a kid say, well, what are the different parts of this problem? What do you see as like the discrete parts of this problem? And then helping them talk through like, well, I first see that I'm going to have to have this… I first see these like different sections... So if they can even start to parse out the different things, then it's not like this overwhelming, like a large problem to solve, but now it's like smaller components. I think that's really huge. And then when the kids start to identify patterns, they're able to make predictions like I think this is going to happen next or, well, I see these patterns applying to this section of the problem and this section of the problem, but not this section of the problem. And so again, what I've seen at least in the middle school is students getting overwhelmed by the size of a problem and not knowing where to start and computational thinking helps them to see that there are manageable pieces to this problem that you can now, um, attack.
Hansberry: I would say that I've seen the same thing in the upper school as well. That one of the biggest benefits is this ability to know how to tackle a problem. I've said this to students before, if you can solve a problem in a way that computers can understand, you can be really confident that you know how to start the problem. You know, the steps in the middle, you know how to finish the problem, like this level of detail that goes into thinking like a computer can help students to really be able to take something that might overwhelm them and make it manageable.
How does computational thinking fit into every subject of study?
Deeney: To build on what Ash and Bobby just said, I think about the idea for a lower schooler of writing a story. You think about the specific components. It may feel like a large problem at the time when you're sort of thinking about that initial idea, but you have a deliberate sequence of how you put your story together and you have a goal in mind, as you write. In the editing process, you take out the pieces that no longer make sense, and you refine the story to get to your final product. So you're taking that big problem and you're breaking it down into smaller steps, taking out pieces that you no longer need. And thinking about the sequence as you put it together.
Oommen: I would also say that, in the middle school, we often talk as teachers that we're all just helping kids solve problems and our problems look different in different subjects. But, computational thinking goes across the board. And, and so we talk often as middle school teachers, as far as integrating computational thinking is, are things that we've done as teachers, our whole lives, now we're just giving common wording so that when they go into another class or another class or another class, they're like, oh, this is the problem decomposition part, oh, this is the, this is the abstraction part. So there's at least a common terminology. And so kids don't feel like I'm doing something totally new in math versus language arts versus et cetera.
Deeney: And just to build on that, Bobby as well, using words like decomposition and abstraction with even my JK students. So when they’re doing something, they break it down in just smaller parts or they're taking pieces out that no longer make sense–whatever they're doing–just having that exposure to that language, even when they're four or five years old, they hear that common language all throughout.
Hansberry: And I would say that that common language that Fiona was mentioning is like one of the strengths of having computational thinking built into our whole program–JK to 12–that's something I think is really valuable about our department. We can introduce these concepts in computer science in junior kindergarten, but then they see them in English in lower school and they see them in science and they see them again in middle school and they can keep revisiting these same terms and these same ideas, build these computational thinking skills, these computer science skills, really over their whole career with us here at Latin.
Oommen: I will speak from the I perspective. When I was in school, I just felt like everything was just disjointed knowledge. I walk into one class and I've got to learn their thing and then another class and it's their thing. And it just all felt disjointed. And so as we integrate computational thinking to Ash’s points and Fiona's point, at least kids are able to see like, oh, it's the same skills I'm applying them in different ways.
How do you build interest in thinking skills and integrate them into the curriculum?
Hansberry: So I think this question is really answered by the fact that we don't teach computer science in a vacuum. We're never teaching computer science and computational thinking skills in one day in one lesson. There's no lesson we can point to that says today is the computational thinking lesson. It's really just woven into our curriculum and woven into the way that students solve problems. So when we're talking about a specific skill in class, maybe we're talking about debugging. Finding the errors in a program, we're looking at a specific program that does something, right? So we can take, maybe this is a program that's trying to calculate a problem they saw in math class, right? And we can look for the bugs in that program that they saw in math class. So it's really woven into the program. Whatever a student might be interested in. Maybe they really like math class. Maybe they really like art class. We can use these venues of where students are interested, as the problems we approach in class. You know, that is why I think in the upper school, and I know we do it in the middle and lower as well, we like to show students example programs that come from all these different disciplines. If we're practicing debugging skills, maybe one day we're debugging that math program, but maybe another day, it's a program that draws a picture and they can apply those same skills for a new program. But this time it connects more to the kids with an art interest or maybe they can use that same program to study animals, you know, and the kids who liked biology have a connection. So because the skills are so transferable, we really get to hook all the kids. We get an interested kid, no matter where they're coming from, no matter where their interests started, they can find a hook into computer science through all of our different parts.
Oommen: I'll add onto that as well. I think all of us think our kids are inherently problem solvers and they're looking for good problems to solve. And if you can give them a problem that is engaging, like they're willing to jump in, then we can start to talk about like, well, how would we solve this with a computer? So for example, one of the problems we start with in the middle school is you've invited 20 friends to a party. Here's the three tables. You've got to have them sit at the tables, but wait, these friends are in conflict and these people are friends. So how would you organize your tables? And then they come up with an algorithm and they come up with a reason why they would see people the way that they would be seated. Um, and then we start to break that down even further. And so we can say like, you're, you're solving problems all the time. Then these are relevant problems. Now, how do we get a computer to– because teachers use websites like randomseatingchart.org, a computer has solved that and just taken what you've just thought about and made it into an actual program.
- lower school
- middle school
- upper school