This will be the first entry in a series I plan on writing on my experiences teaching computer science to upper elementary school children. I'm going to prioritize 20 minutes at the end of each day to really stay on top of this and reflect more intentionally. We'll see how long it lasts. :-)
Friday, I began entering classrooms again to teach computer science. I started this at the end of last year in two of the fifth grade classes at one of my schools, and in two fifth grade classes and four sixth grade classes at my other site. The two schools are pretty different, as well. I've seen, though, that kids at both sites are entirely capable of completing the challenges I offer.
This year, I decided to start early and put more of a Project-Based Learning spin on the series of lessons. I've also found more resources from which I'm pulling to build a more comprehensive set of lessons. That being said, I'm also trying to differentiate between grades to build some sustainability and not bore kids to death in sixth grade with the same ol' same ol'. Primarily, I'm using code.org's Course 2 for the fifth graders and CS Unplugged's curriculum to supplement the unplugged lessons from code.org. Then, once we've learned the basics of programming, we move onto Scratch's Creative Coding curriculum and the PBL aspect of the lessons. The unit overview is here.
Today, I began with an intro lesson. Pretty boring stuff, really...
I mainly mirrored this first lesson on code.org's K-8 Intro to the Art of Computer Science lesson, which may have been a mistake. I ended up stuffing a bunch of high-level overview stuff into a lengthy presentation, and I saw several bored faces over the course of six iterations. Plus, I don't know how much the kids will really take away from that lesson, other than the main points stated in code.org's "What Most Schools Don't Teach" video.
Basically, I start by asking the class what computer science means to them. We go over their ideas and gather some initial impressions, then watch said video.
Then: the barrage of discussion topics. I intended for these questions to be invigorating discussions, but after struggling to get kids talking I inevitably wound up just stating my own ideas.
I really feel that encouraging students to respond to each other will make a huge difference in kids' engagement in class, but I'm kind of at a loss for how to achieve this. I have a suspicion that it's something that just takes lots of time and investment on the part of the teacher, but it doesn't keep me from trying to get it started. It generally ends in me just BEGGING to get kids to at least give me a thumbs up if they hear an idea with which they agree...
So anyway, we watch the video, talk about it and the messages the various scientists are communicating, and then discuss how computer scientists work, what careers benefit from computer science, what skills they need, and what computers can do. The kids go along with it, but I could tell in every class that they're not all that enthralled (with a few exceptions).
Things start to get better toward the end - we watch Scratch's overview video to get the kids excited about the kind of projects they can create, and then I issue the PBL-ish challenge: How can we as fifth grade students make a creative, interesting computer program to share with others? I paraphrase the challenge as, "Each of you is going to write a computer program," and start to see the stunned expressions. Many students have never even thought about programming, so many are nervous and skeptical. I reassure them and generate our list of Need to Know's.
This is where I'm unsure if I stick with BIE's PBL guidelines: we generate a list of skills and info we'll need to find out, and I guess we'll refer to it throughout the unit. I'll have to take a second look at some point.
I have a few more chances to improve upon this first kick-off: there are still four sixth grade teachers who I would imagine will have me in to work with their kids this year. I'm thinking I'll cut some of the discussion prompts to really sit with a few strong topics, pull some sample Scratch projects to show off what the kids can come up with, and possibly make a simple program together to show them that it's not as crazy as it seems.
For now, I'm looking forward to day 2 tomorrow: teaching the kids binary! I'll be using CS Unplugged's Count the Dots activity, spread over two days, and then finish it off with code.org's binary segment from Intro to the Art of Computer Science.