Saturday, February 17, 2007

Programming and idle thoughts

One of the things that makes me sad about Mac OS X (not that there's many) is the demise of certain tools that were available to me under OS 9 for teaching students about programming.

I used to teach students in Years 9 and 10 about HyperCard and HyperTalk - the lack of proper colour tools was a pain, but HyperCard was nevertheless a joy to work with and a fantastic programming environment for students.

I also used Think Pascal with Year 11/12 students. I learnt Pascal at Uni (after suffering a bad case of FORTRAN) and it gave me a great appreciation for clarity and readability of code.

But as they say, that was then, this is now. The world now hums to itself through the Internet, and HyperCard and Think Pascal are relics from a previous life, no longer relevant to computing in the 21st century.

And that is sad, because under OS X, there's no obvious replacement for HyperCard, and no Pascal IDE I would use with students. You can still do Pascal programming on a Mac (using Xcode and FPC or GPC), but it's not something for beginners to tackle. If someone develops a nice IDE suitable to use with high school students (and I'm hoping that LWP by Ingemar Ragnemalm will eventually fill the bill), then Pascal is back on the table, but not before then.

Which leaves me in a quandary about what to do with my senior classes.

Here in New South Wales, senior computing courses have always mandated particular programming languages for students to learn. Once, the choices were BASIC, Pascal or Logo. Now, the Software Design & Development course specifications say:
"The syllabus does not prescribe a single coding language for implementation of programs but advocates a range of high level languages."
Sure, except that further into the document we see some pretty interesting specifics. Under "General Language Requirements" we find:
Appropriate Languages:
• Pascal, a structured version of BASIC.
Hmm, Logo's vanished, but I'm not surprised - it was too widely regarded as a child's programming environment (even though it wasn't). But why not C? Or Python?

And under "Event Driven Languages" we have:
Appropriate Languages:
• Visual Basic, Hypercard, Delphi (limited functions only), REALBasic.
Hypercard? Someone needs to check their calendar. And where's Javascript? Surely it would have to be the most obvious choice for an event driven language. And all you need is a recent browser and a text editor.

Finally, the pi├Ęce de resistance, under "Prototyping and Rapid Applications Development":
Appropriate languages:
• Visual Basic, Hypercard, Delphi (limited functions only), Access, Filemaker-Pro, REALBasic.
I don't know whether to laugh or cry.