Alfred Thompson talks about the trends in teaching Computer Science. Topics include:
- How to get kids moving as you teach programming
- What happens when a school has every student learn Computer Science
- How to engage young women in Computer Science Programming
- Stream by clicking here.
Below is an enhanced transcript, modified for your reading pleasure. For guests and hyperlinks to resources, scroll down.
Computer Science Teaching Tips
Link to show: www.coolcatteacher.com/e187
Date: Tuesday, November 7, 2017
Vicki: Today we’re taking a trip into one of my favorite Computer Science teachers’ classroom, Alfred Thompson @alfredtwo I feel like I’ve known Alfred forever. He is not only a national and international voice for computer science education, but he teaches in the classroom.
So Alfred, tell us about your classroom. What do you teach, and what’s your philosophy of teaching computer science?
Philosophy of Teaching Computer Science
Alfred: We actually have a series of computer science classes in my school. Pretty much all of our freshmen take a course we call “Explorations in Computer Science.” It’s a one-semester course. We focus really on concepts, giving them vocabulary, helping them understand the role of computers in the classroom, and we also spend a little bit of time — a few weeks — on to get started with programming. We want them to understand how a computer works.
Then we have next level we've got an honors programming class and a mobile applications class, also both one-semester courses. That's for kids who want to get in a little deeper. Of course, we cheated a little bit. We make a full year of computer science a requirement for graduation.
Vicki: Wow! We do at my school, too. And it’s been a great thing.
Everyone Takes Computer Science at Alfred’s School
Alfred: It really has, because it’s forcing kids to look at things. Now, of course, it’s forced us to have more options, too. Next year for the first time, we’ll be teaching both AP courses. So yeah, we've been teaching AP Computer Science A for a while, and it's really great for the kids who are heavy into computer science and already thinking that's the way they want to go.
Next year I'll be teaching the computer science principles course, which I'm really excited about. You know, it’s a breadth course. It's not solid programming like the A course is, but it's going to give us a lot of time to talk about the issues in computer science, the role in society, the different ways computer science is used. So I'm really excited about the chance to explore the wider world of computer science — you know, beyond programming — with a good group of kids. I'm really excited about that!
Vicki: That’s exciting! So, Alfred, what’s the most transformational … Give me an example of a project or something you’ve done in some of these courses, that you’re like, “OK. This is what it’s supposed to look like.”
A Semester Project instead of a Semester Exam
Alfred: You know, one of the things we started doing a few years ago was — rather than having a semester exam at the end of the course, we have a semester project. What happens here is the kids get to pick their own projects. They're going to create an application, something that interests them. So you know, we give them some possible suggestions, but it's their project.
It turns out that they learn a ton — because when they've got a project that interests them, they're really motivated to learn beyond even what we talked about in class. That's always the goal, I think. You know you don't want kids trying to learn just enough to pass the course. You want them learning more because they want to solve a problem. So I think that — we do projects all along, but that semester project really transforms the course and finishes it up with a bang.
Vicki: So what would be something that somebody might do in that semester project?
Semester Project Examples
Alfred: Okay, well you know, for our freshman have only had maybe four weeks of programming. So they'll write a simple game — you know, a tic-tac-toe, a Lights Out game.
We've also got kids doing some projects that are the mind games that are supposed to help you improve your mental acuity. And they involve timers, you know, they are going to go for 30 seconds.Then things are going to happen with every time. They’re totally unaware of what they might learn.
But other kid, like in the honors programming course, do their own version of Pac-Man or Space Invaders. I've had kids do projects that help them with their physics courses, for example, which they're really excited about! And frankly, so are their teachers.
Vicki: So what do you think the biggest mistakes are that schools are making these days about computer science?
Mistakes Schools are Making with Computer Science
Alfred: Well, I think a lot of schools still think that it's just for a special set of geeky kids — you know, the white and Asian male students. That's a huge mistake, because girls are awesome at it, especially if you give them projects that they’re interested in.
I think the other thing that schools make is the assumption that there's a one-size-fits-all kind of thing. You know, the same projects work for everybody. And that's definitely not the case. I think they don't spend enough time asking kids about projects that are relevant to them.
I had a student tell me one time, “I really like when you give us projects that are relevant.
And I said, “Oh! You mean like the program we did that balances checkbook?”
And she said, “No, I mean like tic-tac-toe!”
Vicki: (laughs) OK, That’s interesting! (laughs)
Alfred: (laughs) Right? Because what we as adults think of as relevant is not necessarily the same as what students think of as relevant.
Alfred: And that’s fine.
Vicki: So Alfred, you see computer science across the whole nation. You’re on the board for CSTA. Do schools have to put in an official computer science class or are there other ways to pull computer science into other classes?
How to Bring Computer Science into Other Classes
Alfred: They are definitely other ways of pulling computer science into other classes. One of the things that my wife has done with her middle school students she works a lot with reluctant readers and reluctant writers. She had a student who was kind of a problem in English class. He wasn’t into writing. As a reward for behaving well, she had him creating stories using Scratch.
Alfred: So there was a reward there. He saw it as playing a game, but he was really learning how to tell stories but in a computational way. I like to see teachers integrate computer science tools in a lot of other subjects. I see teachers science teachers, for example, having students analyze data using Excel. I think they could do a lot more if they learned a few of the computer science concepts that Excel excels at (laughs) — quite frankly, like conditional formatting, for example.
Decision structures — like Computate — you get the whole decision structures thing. It makes things more interesting, it makes things pop out at you, for example. This kind of thing, getting more out of these computational type tools — because you understand the concepts behind them — can be a powerful way to enhance all of the curriculum.
Vicki: Yeah, and it’s all about getting kids to create their world and not just be consumers of it.
Alfred: Oh, absolutely. You know, I find the kids… you know, they pretend like they just want to sit there and soak stuff up. But they really want to sit there and ignore you.
Alfred: They really do. And they’re really great at it. Awesome at it. They don't even need fidget spinners. But you know if you get them motivated to do something different, motivated to get them up and moving? One of the things I've been working on a lot this year, and which I want to continue doing is getting kids to learn on their feet.
Vicki: Yeah? What do you mean by that?
How to Get Students Moving in Computer Science Class
Alfred: Well for example, when I introduce loops, I'll have a kid stand up.
And I’ll say, “Take seven steps.”
He'll take seven steps, and we'll talk about, “How did you know when to stop?” and “What was the set up? Basically, when you were walking, you were doing all the things we do in a counting loop.
Or, “Walk back to this point here.” That's a “while loop.”
Alfred: You know, kids love money. I'll take out a handful of change, and I'll ask one student, “How many coins are here?” Alright, that was counting.
Now I’ll give the same handful of coins to another student and ask, “How much money is here?” Then we'll talk about how that student is basically using an accumulator.
These are things they do in real life, but they don't realize how they relate to computation. So seeing that real-world connection, getting up and physically moving around…
You know, when we do sorting, I have the kids moving all over the place. You know, “Sort yourselves by age. Sort yourselves by height.”
There's a really nice Radix sort exercise from CS Unplugged that we use. We have kids walking around. It makes them stay awake. They’ve got to follow the directions.
Vicki: Yeah, and you get that bodily-kinesthetic learner going!
So, educators, we’ve learned a lot of remarkable things from Alfred. I think that it’s important for us to understand. I love how he’s constantly iterating, and he’s saying, “OK, I’m excited about doing this, or I’m excited about doing that.”
Here you have one of the people who is known to be one of the leaders in computer science education. You do not see him settling. You see him making it relevant to students. You see him bringing the real world in. You see him harnessing student passions.
And these are the things that we need, to be remarkable.
Transcribed by Kymberli Mulford
Bio as submitted
Alfred Thompson is a high school computer science teacher at Bishop Guertin High School in Nashua NH. Alfred is a member of the Computer Science Teachers Association (CSTA) Board. He has been a professional software developer, a textbook author, a developer evangelist, a school technology coordinator, a school board member and more. Alfred sees himself as a computer science education activist working to help reach more young people with the knowledge that they can make the world a better place through software. Read more by Alfred Thompson at his Computer Science Teacher blog (http://blog.acthompson.net).
|Disclosure of Material Connection: This is a “sponsored podcast episode.” The company who sponsored it compensated me via cash payment, gift, or something else of value to include a reference to their product. Regardless, I only recommend products or services I believe will be good for my readers and are from companies I can recommend. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.) This company has no impact on the editorial content of the show.|
Tips for minimizing teacher stress
- Discover 10 stress-busting secrets for healthy teachers. What simple routines will help you handle the stress?
- Simple advice for coping with stress at work.
- Learn tips to help you deal with difficult colleagues and students (even those who "hate" you -- yes it is possible!)