18 December 2009

School presentation for CS Education Week

Since last week was Computer Science Education Week, I spent some time at my daughter's new school to give a short presentation about computer science and engineering.

It was an eclectic mix of topics/activities:
  • They had to find all the computers in the classroom. That is, find all the items that had computers/microprocessors inside them, so it included the printers, microwave ovens, CD players, cell phones and TVs in addition to the obvious desktop computers.
  • I took apart an old GBA and identified the various components. Also, I put it back together afterwards to verify that it still worked!
  • We discussed the logic needed to control a character in a simple platforming video game - how to move the character when the player presses the buttons on the control pad.
  • Demonstrated some small electronics projects that show how a single bit of memory is stored.
  • Passed around an 8" wafer from Intel. These are really neat to look at - and one of the students had a parent working at Intel but had never seen a wafer.
And finally, I had them get into groups of 3 and do the How Computers Work activity. And that's where things got a bit interesting.

Competition

There were 6 students - 3 boys and 3 girls - and they naturally divided themselves into a group of boys and a group of girls.

While handing out the papers for the activity, one of the boys suggested that it should be a competition to see who would finish first. I watched to see the reaction of the students - the girls (and perhaps the other boys as well) didn't seem to be interested, and the one who suggested it moved on and didn't push for it.

I realized how easy it would have been for me to encourage this competition - I would be reacting to a student's request and that's usually an appropriate thing to do as an instructor. But it also would have partially alienated some of the students who did not want to be part of a competition. At the very least, it would have made it more stressful for them to participate. It made me wonder how many times in the past I had inadvertently done something similar and made things more difficult for some of the students.

Knowing what I know now about learning differences between girls/boys (and students in general), I would have stopped the competition anyway by pointing out that the two teams had different (albeit comparable) "programs" so a timed competition wouldn't really be fair. But I was relieved that the topic went away on its own.

Starting early

The other aspect that was interesting was that as the boys were forming their group, they discussed all the computer/technology stuff they had done before: The computer camps they went to, the programs they had written, the robot they helped build, and so on.

This sort of conversation did not happen with the girls team.

One comment from a boy struck me. I can't remember the exact quote and when I replay my best recollection it seems harsher now than it did at the time (so I'm sure I have the quote wrong somewhat). But the comment was something like: "the girls aren't interested in computers" or "they don't know much about programming, except for GirlX". GirlX being my daughter, the only one that apparently had been exposed to computer programming beforehand.

So, by 7th grade, the majority of boys (in this admittedly very small sample) had already gone to a computer camp of some sort whereas none of the girls had. Some of them had already formed their view of what was interesting to boys vs. girls.

So now I wonder,
  • Is 7th grade too late to start introducing computer programming in the classroom?
  • Is this related to boys tendency to brag and overstate accomplishments vs. girls tendency to understate?
  • What are the parents' roles in this? Did they offer computer/math camp to their daughters? Should they have? My assumption is that most parents follow the natural interests of their children, so they will look for camps that their children have already expressed an interest in.
I have been working on the assumption that 6th through 8th grade was the critical period to introduce programming, with pre-programming skills (binary, logic, ...) taught in 3rd through 5th grade. But I also assumed that starting anytime in 6-8th grade would be OK, even if it could have been started earlier.

After this, I'm wondering if the first introductory programming class really needs to be before middle school starts.

No comments: