21 December 2015

Computer Science: a diluted term, soon to be meaningless


I just saw a grade 6 school teacher's course web page.  He teaches a "Computer Science" course wherein students learned to type and format letters in Microsoft Word and Apple Pages.

There's a high school teacher who teaches "Computer Science".  His course emphasizes drawing and painting in Photoshop, and animating things in Flash.  Yes, I know you can do a lot of programming in Flash.  No, they don't do very much programming in that course.

Teachers: Please, don't call typing and formatting a letter in a word processor "Computer Science". Please don't call a multimedia class "Computer Science".  It's confusing students into thinking "Computer Science" is what used to be called "Computer class".

If your class has a mix of subject matters, call it "Computer class", then within it you can have units on "Business Applications" or "Information Processing", "Multimedia", and maybe even a unit on "Computer Science" (which would only have programming and/or the more "math side" of computer science).

Otherwise, students will one day step foot in a real Computer Science class, be it in a high school with a real CS focused teacher, or in college or university.  And they're going to go "WTF, this isn't CS", when in fact they were duped in earlier grade school.

I've seen this happen before in a different subject: engineering.  Schools started offering "engineering" courses that were really just the old electro-technologies courses, which were closer to engineering-technician courses.  Imagine the surprise when some students who took those courses and got into university engineering then faced down the barrage of engineering math and physics courses.

Actually, who am I kidding.  It's already happening with Computer Science.  The term is meaningless among many junior high students.  Many of them think it's Photoshop, PowerPoint, or photography.

This is brand dilution.  And it's too late.

20 December 2015

Governments mandating which programming language to teach

Over the years, I've been asked to provide some suggestions regarding what programming language should be mandated by government curriculum for teachers to teach.

One excuse for having a curriculum mandated programming language is that it'd help teachers with less knowledge tap into a bigger wealth of information as all teachers would be teaching the same language.  Or at least having a main, recommended language would help curricula development, again because everyone would teach the same thing.

I can't agree with that position.

The government mandated curriculum should be language and vendor neutral, or else it'll be captured by greed, special interest lobbies, and corporations.  It'll be technologically held back while the rest of the world moves forward until the next curriculum update (in about 10 years time --- that's more than one lifetime in technological progress).

Of course, the next curriculum update won't change much in the curriculum because of path dependence.  Because so much resources has been created for the old outdated stuff, and so the curriculum would lock in a specific technology for decades at a time even if it gets outdated.

Do we want to lock into the curriculum for decades at a time: COBOL?  FORTRAN?  C?  Java?  C#?  Python?