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.

2 comments:

Unknown said...

Well obviously the young man is speaking from a web-development mindset (all the languages he mentions are primarily web development tools), but given that computing resources are going to continue to migrate to the web, it makes sense that these have heightened importance. Regardless, as a self-taught programmer myself, the basics of programming span all languages and the specific language is less important than the concepts involved. I think that Alice is a good start and REALBasic is a natural progression into more advanced topics that can be applied to any programming language.

Anonymous said...

Regarding the importance of a students' programming knowledge at 12th grade graduation, students should leave with "some" knowledge of how to do some web-based development. Such knowledge (better yet experience) would be valuable not only in science and technical vocations but also business vocations.

Which language to teach is somewhat immaterial, but it needs to be currently in use. I had BASIC in high school, and I think that prepared me just OK. BASIC is good for developing a logical thought process, but it has some shortcomings. E.g., it doesn't allow parameter passing or local variables, and it is not object-oriented. (Confirm, please) Granted, not all students will be an engineer, but the art of software development is no longer within the domain of just engineers.

I have seen and written a little JAVA code, which is object-oriented. The development package was not cheap though. I am not familiar with XML, but it strikes me as being similar in nature to but more current than JAVA.

For the senior Tech Apps 2 class I plan on using a version of BASIC to program the robots. I do have a demo version of Alice I just downloaded 2 days ago, and it appears to be object-oriented. I've yet to play with it, but I expect I will use this in the class too. I just don't know exactly how. (I'd better expedite this, no?) The seniors have not seen Alice yet, but subsequent classes will if TA1 uses it, right?

Whether 'tis nobler to use XML I don't know. I will probably grab a a book or two and evaluate it that way. Cost is a consideration too.

Lastly, programming is more difficult on a Mac. I've run into a lot of applications I'd like to use only to find they don't run on a Mac. Yes, the latest Macs have the dual processors, but our iBooks don't.