Besides the teaching of the math, I run an after-school programming club with my boyfriend, Adam. Our skills are oh so nicely complementary: he’s a professional programmer who has done a little bit of work in middle school math classes and I’m a professional teacher who has taken a few programming classes.
I was excited about it when we started up last year for a bunch of reasons. There aren’t any programming classes at the school, although there are different types of computer/web design classes, and a chance to take classes at the Harvard Extension school. I thought it was really important to have something on-site, since only kids with the right amount of motivation and free time can take advantage of the college classes. And programming is such a booming profession that I thought it necessary to give students at our school a chance to learn about it. Ideally it would be a class during the day, but that’s a lot more difficult to get going. The club was an easy way to get programming out there.
We had a pretty good turn-out in the beginning of the year, but by June, we had exactly 3 regulars. I think we didn’t do a good job of explaining the main themes of programming and it felt overwhelming and wishy-washy to some of the other students. Another interesting thing that happened was that we didn’t get the typical kids you would expect to find in a programming club. We had a huge mix of kids in special ed classes, ELL classes, and advanced classes. I get the sense that the typical programming student kind of already thinks in the computer mindset. Some of ours did, but a lot didn’t, so we realized that this year, we’d really have to teach that.
That brings us to this year. We’ve decided that every week, or every 2-3 weeks, depending, will be focused on an aspect of the programming mindset. For example:
-the computer reads what you wrote in order, top to bottom
-the computer doesn’t know what something is until you tell it
We started the first meeting with a little activity that was based around getting used to the first idea. The students had to write a list of instructions that would get Adam or myself to draw a smiley face — and then walk to the door. I wrote this up:
PROGRAMMING CLUB! WEEK ONE!
Write a series of instructions.
Your goal is to make Adam or Ms. Riling draw a smiley face.
The problem is: they cannot do anything without being told to do it.
You must be their brains.
Get Adam or Ms. Riling to open a door. (They will start sitting at the desk.)
We ended up doing it verbally, as it suited our small group of varied experience. There were perfect teaching moments of them saying “draw a circle,” followed by myself drawing the tiniest circle imaginable, or “draw a curve from the left dot to the right dot,” followed by Adam literally connecting the eyes. I think we did get across the level of specificity you have to have when you’re programming, and reminding/informing them about just how dumb the computer is, intrinsically.
We turned the challenge into a competition — 3 kids told me what to do, and 3 kids told Adam what to do. There were some awkward moments of standing perhaps a little too close to Adam during school hours, but it was based on kids messing up, not messing with us, and things were rectified quickly.
I got feedback from some of the students that they did in fact enjoy it, and the ones who had programmed before said it was similar in ways to actual programming. So that was good.
Hopefully we’ll be able to use this activity again and again to introduce new topics. For example, showing that we only understand certain words, or certain types of phrasing. It’s just a metaphor, but I’m hoping that it will be a useful one. I’m hoping that when a kid makes a mistake writing a program, I can respond with something like, “remember how you got Adam to put the smile under the eyes, instead of connected to them? how is that similar to this?”
Anyway, it’s time to plan for next week. Does anybody have any resources for teaching programming to kids who don’t already just intrinsically ‘get it’? It seems like most materials are designed for the kids who take AP Calculus. But I think it’s really important, as computers and smart phones become more entrenched in every day life, that everybody understands the basics of how they work — like how we have high schoolers take science with a partial goal of getting them to understand the physical world around them. Otherwise, the computers will dominate! Luckily I have practice from the first club meeting being a computer, so I’ll be fine when that happens.