Wednesday, July 30, 2008

Programming Programs: What Do Students Really Need to Know?

We have been discussing, those of us who have a stake in the technology education of our students, what high school students need to learn in the arena of programming as preparation for college and careers.

Our new technology teacher, who is fresh out of college and therefore an expert, reports that most students who are not Computer Science majors need to be comfortable with the workings of Office, perhaps some of the iLife applications and their PC equivalents, and effective use of the Internet. His experience tells him that most students who go beyond the basics of technology in their college courses do so using media applications, hence the needed exposure to iLife, etc.

This still left us wondering a bit about teaching Programming -- where do we begin with something that changes every nano-second? What are the skills students need to learn? Where do we start?

When I found myself and my laptop ensconced in a booth at Panera during my July vacation (they have free wifi, and I had no Internet access either at my mother's or my brother's homes in Huntsville, Alabama), I couldn't help eavesdropping on the guys in the next booth, who were obviously deep into webspeak. As I was packing up, I introduced myself as an educator and asked one baseball-capped young man (his companion was in the vestibule on his cell phone) if he wouldn't mind answering a few questions....

It turns out he works in web development for a new start-up out of Denver. He had a good first job just out of college, but happily gave it up for the pleasures of tele-commuting. I asked him what he thought students should learn by way of programming -- he was entirely self-taught before college -- and he recommended this progression: a basic introduction to the concepts of programming (like Alice or Scratch), Java, Flash, and then "anything else that's out there." With those things under their virtual belts, he felt, students could then strike out into the digital world and follow their own programming interests.

This sounds logical to me, but that's easy to say for someone who has no programming no-how whatsoever. I'd love to hear what others may think.