High Schools are Not Preparing Students for Computer Studies Wed, Jan 21. 2009
My second daughter is about to enter High School, and we're trying to choose between two different high schools. During an Open House at one of the schools, I saw a room with some robotics set up, so I stopped in. The teacher was explaining to some other parents that "programming is often associated with electronic design", which piqued my interest. On the screen was a simple helloworld-class program written in Turing.
When my turn came to speak to the teacher, he explained that programming was part of their tech stream, and that students could take programming starting in grade 10. According to a diagram handed to me, students would enter the programming course after having taken an introductory tech course in grade 9 -- which is a basic overview of wordworking, electricity, a bit of metalwork, and some drafting (though a quick peek at the Ontario Ministry of Education website shows that the grade 10 course has no prerequisite). The teacher explained that they taught using Turing, and in the later courses students may be able to do some work in C/C++ or Java. Alternately, there are business computing courses, which teach students how to use popular productivity applications, and digital media arts courses, which cover multimedia applications.
This is bad on so many levels.
Turing is a proprietary language. It has only ever been used for teaching in Ontario high schools and has never been used for any significant real-world software development. It was never Free Software or Open Source (libre) and only became free software (gratis) when the company distributing it, Holt Software, ceased operations in 2007. The website for Holt Software (from which the software could be downloaded) appears to have gone offline, as has the website for the OpenT project, an open source reimplementation/superset. Although students can learn basic programming concepts with Turing, they will have to learn another computer language in order to program in any other context.
Many computer programmers are not involved in electronics design, woodworking, metalwork, or drafting. Few of my colleagues or students are into electronics design. There seems to be little or no recognition of connections between programming and logic, math, or language in the Ontario high school curriculum.
The question in my mind: do we fix this? Or route around it?
(Fortunately, not all Ontario students face these issues... for example, my friend Ernie Carmichael was teaching Python six or seven years ago at a Toronto-area private school, and I have recently had one of his students in my LUX class, having earned a bachellors in Phillosophy and picked up a couple of courses in logic since studying with Ernie).
I liked your article and agree whole heartily that today's Educators aren't preparing students for fields in CS. Although here in the US the situation is more dire, at least Turing is taught up there in Canada but the closest to programming in high school down here is HTML through Dreamweaver!? Personally, I think that if a student wants to learn programming they will learn outside of the education system through trial and error processes.
As a Torontonian and a by-product of such an education; I can relate to the frustration. Fortunately, we have a privilege to take it upon ourselves to go beyond the classroom. This course of action should not be needed, but it was and is reality. Personally, most of what I learned was self endured through channels such as our libraries, the internet, and one’s own mischief. There are few who seek such passion and even less to teach it. It should be fixed with better guidance and allow the continuation of the free spirited student to create their own paths of knowledge and subsequent passion. It is an insight in how commercial education is around home and beyond.
We were taught Turing in the first year of my computer science course (doc.ic.ac.uk). It was an annoyance but not significantly worse than Modula-2 or any of the other Pascal-derived languages often used for teaching. In the end you are not teaching a particular programming language any more than a particular operating system or hardware architecture. What matters is to learn to program, and then the differences between (imperative) languages are relatively minor.
I agree that the implementation sucks though.
Chris, it should be noted that the Ontario HS curriculum has many streams, and Tech-Ed (the one you are discussing) is only one of them. What they call Computer Science is part of another stream which does not include woodworking. And that is part of the problem: the structure is so complicated and messy that students don't understand what to pick, and individual high schools, which can't do everything, have to pick and choose what they offer. The centralized curriculum design, intended to provide consistency throughout the system, ends up backfiring - differences between high schools are probably greater than ever.
In my first year in University, I learned a programming language called "Blue". And we didn't learn any OO concept in there. Second year we went straight to Java, C++... it was tough.. @@
and.. geez.. The compiler crashes every time when you have some syntax error. It was so annoying. It's just really "Blue".
For someone who has gone through high school, I have had no formal training of computer programming/(x?)html. All of my knowledge was self taught, and that's what I went in with to Seneca, and I found it a pretty smooth transition. I did notice classes at my high school teaching Java, Basic, C, Flash, etc. and I probably should have taken them.
I say ask the teachers of these programs to update their curriculum. Courses that deal with html should learn (x?)html syntax the right way, as well as give information about current and future technology.
Interesting article. Here in the Ottawa Catholic School Board we are now moving to teaching ActionScript 3 with Flex for the new Ontario curriculum programming courses...we have been using a combination of Java and VB.Net for a while. I agree that Turing is a poor choice, one that is quite outdated now.
I guess they will have to learn another computer language in order to program in any other context. its good for new learners and its important too.