May 6

Issues about teaching programming

Category: Uncategorized


I came across an interesting post today, about teaching programming, and I whole-heartedly agree. This reminds me of a few issues I’ve noticed in the computer science department of UBC-Okanagan. Now note, this is a very fine institution, with brilliant and talented professors and teachers. The points I have an issue with are not their fault.

-Java. The problem with Java is that the sheer amount of syntax and keywords one needs to know and understand before you can even make a working, useful program is ridiculous. Java is not a good language to introduce students to programming, even if all the businesses use Java in their corporate apps.

Java is obtuse, wordy, and finicky. Students see a line like Ball beachball = new Ball(). I see three points of wasted typing, most new programmers will see two- Ball beachball, and Ball(). Knowing about Java’s polymorphism, it seems pretty silly to have to tell Java twice that this variable is of the type Ball. And then theres also the fact that I need to tell Java that this we need memory(the new declaration).

Thats pretty obtuse, particularly to new students. Java is much too complex(some would say needlessly) for teaching programming, at least initially. Its confusing, and scares them away.

-Graphics programming. One of the reasons Java was chosen by the administrators was the fact you can make gui’s easily in it, which will be “attractive” to new programmers. No. Just… no. Gui programming requires all sorts of complex concepts and considerations that takes time and experience to absorb, not rote recital of facts.

Besides, as anyone will tell you, gui programming takes time and effort. This diminishes what the student takes away from the lesson, due to the simple psychology of teaching. The shorter the time between the student doing something, and the result, either wrong or right, the better they will remember the lesson. And gui programming is the exact antithesis of this, where it takes time, and effort before you even find out you screwed up.

If you stick to simple text input and output, its quicker, simpler for students to understand. They type something, try it out, and boom, it either fails or works. Its easier to learn.

-Obscure real world applications of computer science. This is a bit the fault of the teachers yes, but, lots of my classmates wonder just how is this useful, or how is that useful? Then, because they feel its a waste of their time, they don’t devote all their time and energy to figuring it out, and later classes, applications, etc, they realize how useful said process could be… if only they had paid attention.

Computer science itself, is complex and seemingly esoteric, having almost no relation to the world as people see it… yet. There needs to be more work done on how to relate the usefulness of various tactics in Computer Science and programming.

Recursion and functional programming are useful in that you learn how to think and parse complex topics, but this is not related to the students, so they feel confused, bewildered, and even scared about what else is coming in Computer Science.

1 comment

1 Comment so far

  1. Aziz June 24th, 2008 4:43 am

    I really agree. That is the type of teaching they do at St Clair, and it really limits a lot of people. Luckily I already had some experience and I’ve done so much out of school, I already had a good grasp of what they were teaching. But there’s a lot of people that failed Java and failed hard.

    Then again, people don’t really try in my course, so it’s their own fault. It can all be learned… just not as easily as it might be. The fact that all the teachers teach differently and at different speeds doesn’t help.