Hackety Hack Experiences
Yesterday, my old middle school had a “Career Day,” where a bunch of folks from different careers went to the school and set up a little table to talk about their career. They sent a letter off to the UW(University of Washington) CSE department asking for volunteers to talk about Computer Science, where it got forwarded to the undergrads list, where I read it and said, “Hey! That’s my middle school! I should help out.”
That was also around the time Hackety Hack had been released, and I thought it would be really cool to take in a laptop and let kids hack around on it. Programming is definitely the most glitzy part of computer science; that’s why intro CS courses focus on it rather than something more academic like graph theory or counting. I figured it would also be the most likely to interest kids, even kids of a slightly younger age than Hackety reccomends (the youngest were around 10, I think).
It turned out to generate quite a reasonable amount of interest. The structure of Career Day was to set all the tables with the various careers (there were about ten in total) up in a circle, bring the kids in grade-by-grade, and allow them to wander around looking at whatever interested them. My table with nothing much but some promotional DVDs and mousepads and the laptop running hackety was a little overshadowed by the Digipen table with the colorful display board, computer streaming videos of games, and even robot, but I did get a fair number of people wandering over to see what was what. I usually had at least one person Hackety Hacking away, occasionally with a gaggle of other kids surrounding them. In the course of watching them and helping them with their hacking, I learned some interesting things.
Girls and boys were about equally represented
This was true not only for aptitude at programming, which isn’t surprising, but for willingness to actually come over and start programming in the first place. There are far too many stigmas against programming, particularly for girls; what could possibly be more nerdy than programming? Nevertheless, for whatever reason, I had just as many girls sitting down and hacking as I had boys. That bolstered my faith in humanity just a little.
The Hackety Hack tutorial was a bit ill-suited to this environment
Kids were always wandering around, mostly planning to stop at each table for five, maybe ten minutes. Each grade only had about half an hour total to be there. No one really had time for a lot of the stuff in the tutorial, like the beginning few “Hi I’m a tutorial, here’s how to start a new program” panels and the panels about saving programs. They really just had time to sit down and write a little code.
I eventually settled into a rhythm. I started them on the first actual programming task in the tutorial, writing a program that asks for the user’s name and then displays it. I just had them copy the code from the example to the program box1, and then running it. Then I personally asked what the next few panels would have asked, about what they think each part of the program does and how they’d modify it to do something different. If they really got the hang of it, I’d move them up to the next programming panel (just ignoring everything else in between) and repeat the process with that. Very few people moved beyond that.
That said, I think just because of the structure of Hackety, the libraries it provides, and its various other niceties, it was better than anything else I could have been using.
Kids make the darndest syntax errors
There were a few errors I saw cropping up over and over again when the kids copied the code from the example to the actual text box. The most common was that they would add spaces between methods and parameter lists. For example, puts(name) became puts (name). I imagine this is an artifact of how we normally write speech; I’m glad it’s not an actual syntax error in Ruby.
They also tended to miss quotations on strings, and they can get confused with semi-exotic characters like curly braces and pipes when they first see them. I even had one person who didn’t include newlines.
Kids don’t understand variables
The first code they typed in was the following:
# Asking and saying name = ask("Your name please?") puts(name)
Once a kid had typed this, I asked them what they thought each of the parts of the code was doing.
Most kids were able to guess after a while that
ask("Your name please?") made the dialog box show up,
and that puts(name) then printed the name.
However, no one was able to figure out what was up with that name = bit.
If I asked them to change it to ask for something else,
I might get something like
# Asking and saying name = ask("Your age please?") puts(age)
Note that name = is unchanged.
I can’t help but wonder if this has something to do with the math curriculum at the school;
it’s pretty terrible.
They barely touch algebra at all,
and then in a very non-cohesive way.
They may just not have had practice with “x = y”-style syntax.
It’s interesting that once I explained variables2, most of them caught on straight away. I don’t think it’s a difficult concept, just unfamiliar.
Kids think hacking is nefarious
Everyone associated the word “hack” with hacking into secret government databases. I found myself explaining over and over that “hacking” was just manipulating something in clever ways. I think it might be good to include in Hackety Hack or some of the surrounding promotional material an explanation of what it means to “hack.”
”#” is a number sign
There’s a little debate going on in the Hackety Hack forums about what to call this character in the program. At the moment, it’s referred to as a “pound sign,” but for many people, particularly those of the European persuasion, that means “£.” All the (American) kids I saw who mentioned it called it a number sign.
I wish I had had LiveCDs
I hadn’t thought ahead enough to bring CDs with H-ety H on it to give out to kids. That sucked. I ended up writing down the URL for some of the ones who seemed most into it, but it would have been great if I could have given out something that would have screamed “Put me in your computer!” There’s a good discussion about this going on in the mailing list, and I’m excited to see what will come of it.
1 Not actually copy-pasting, of course; I wanted them to get a feel for actually writing it themselves.
2 “They’re like a box you put something in. The name of the box doesn’t matter, just what’s in it.”
About Me
Feed
Scribble!



Great experience and summary. I saw similar syntax hurdles with my own kids. We also saw one other – capitalization w vs W was confusing. It will be really interesting to see HH move into the classroom.
I am eager to do some Hackety work with middle schoolers. Their problem with variables is probably due to not yet having Algebra in math class.
With regard to syntax errors, this is the number one point of frustration for the 11th and 12th graders I’ve been teaching recently. They mix up case, swap periods and commas, misunderstand spacing. Interpreters and compilers are a brutally specific, nit-picky tools. Some kids enjoy learning to be precise while it can be a show-stopper for others.
Great post! Keep us updated!