In high school the only provincially recognized curriculum is Computer Studies 11 and Computer Science 12. These curricula are largely dedicated to the development of programming skills. The programming language specified is Pascal with most schools using Turbo Pascal or Think Pascal on a Mac or IBM platform. The problem, as I see it, is “Can you produce a useful product in a 100 hour class?” One hundred hours is the approximate length of a high school class once you account for holidays, exams, and other interruptions. The planned length of a high school class should be between 110 and 135 hours. Talking to several people I know in the commercial computer field, 110 hours is nothing in a programming project.
One person told me that their team can spend 1000 hours on a device driver! I do not suggest that schools should be creating programs like Windows, Excel or Wordperfect but their it little purpose in teaching students to create a program that prints their name 10 times. Such an example used to be the norm in the bad old days of Basic. The result of any curriculum should be to product a learning experience that is useful. If that is an acceptable criteria, what about programming.   Given the time constraints that I have mentioned, it is questionable that you can create a useful experience in Pascal programming. The alternatives are many. First, there are other programming systems that give you more power with roughly the same learning curve. These packages include several Object Oriented packages and their associated libraries, mostly variations of C. These systems are designed to give you the basic tools of programming without having to design all the sub procedures from scratch. They also give the novice programmer the ability to produce windows (Mac or MS) programs that give a presentation that most people are used to. If this is the solution there are a couple of other changes that need to be instituted. Programming has to be dealt with as a class project and emulate a programming team. You design the project, break into sub-groups, and work on your module that will eventually be fitted into the final product. That is logically the way programs are created today. The only problem is that it goes against the nature of the school system.
If all the students in the class produce one product how can you justify giving them different grades. Giving the whole class the same grade would drive most principals up the nearest flag pole. Even if you carried it to the sub-group level there would only be three to five sets of students. The only saving grace of this system would be the use of self- and peer-evaluation. While a valuable tool most parents, principals, and some students would balk at this alternative. In short, if there is to be a continuation of programming with the newer languages there must be a change in the way computer classes work.   The second alternative is to use the many authoring tools that are available. In the Apple environment they are well established in Hypercard, Supercard, and HyperStudio. Similar tools are becoming more accepted in the IBM environment. There must be compatible tools on both major platforms because curriculum has to be platform independent to avoid excluding a large percentage of districts of schools. The use of authoring tools changes the focus of the task. Programming has always been viewed as a nuts and bolts view of the computer. The use of authoring tools removes the students from the nuts and bolts a little too far for most programming purists. This leads me to ask what the underlying reason for doing a “programming” exercise at all. If programming is intended to give students a nuts and bolts look at the machine then clearly authoring tools don’t do this. I would question whether any programming language currently in use would accomplish this. Programming libraries have removed the nuts and bolts from even the professional programmers life.

Leave a Reply