Archive for May 6th, 2008

Issues about teaching programming

May 06th, 2008 | 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

Confusion between artists and coders

May 06th, 2008 | Category: Uncategorized


I greatly enjoyed this post on Codinghorror.com, where Jeff Atwood talks about the MVC pattern. Needless to say, it would be pretty useless to reiterate what he says. However, one of the comments caught my eye:

I have to admit, as someone with more philosophical inclinations, I wonder whether the stated goal of totally separating content from representation is even a good idea. Certainly no graphic designer would sign on to that theory of the world, much less a philosophically inclined graphic designer. The world is not actually made up, ontologically, of objects whose logical value and whose representational value is totally separate—they are deeply intertwined.

I understand, of course, the practical benefits from doing such splitting. But I find it quite odd that computer people on the whole seem to think that this approach is a really elegant one. It’s an idea which anyone in the humanities would find amusingly bad, one whose limitations are going to be on display constantly (as an example, witness how much hacky-looking CSS one generally needs to use in order to take a given HTML structure that was set up for a given page appearance to actually make it look totally different).

Shmork on May 6, 2008 05:11 AM

Its an interesting complaint, one that I’m sure quite a few artists and designers would point out. But, it is not an applicable complaint about MVC, simply because, computers are not a microcosm of reality. Computers operate by logic; if this value is true, then do this action. His complaint, is in essence, “Well, yeah, but reality is not sorted like that! Why should computer programs be so inclined?”

Lets look at this from another point: that the world is not made up of objects that fall into the ontological framework of MVC. For the model, lets have it be any object, say, a beachball. The beachball has specific data attached to it, its appearance, texture, how much air is in it, and its point of location. The view, in MVC, corresponds to the different ways we can see the ball, for example, with our eyes. The controller, and this is important, corresponds to the laws of physics for reality. The laws of physics say that the ball is here, and moving in this direction, and thus, our eyes, see that, due to light bouncing off the ball(which again, is determined by the laws of physics.) The ball changes its position infinitesimally, just as the laws of physics insists it must.

That sounds like a perfect example of MVC to me. And in fact, I fail to see how philosophy enters such a debate. Even a philosopher that trusts in the laws of physics would agree that the MVC framework fits reality.

Then Shmork states that anyone in the humanities would find it laughably bad. I fail to see how that pertains to the application of MVC to the world… considering that the Humanities refers to one of three major sub-divisions for a liberal education, which includes such subjects as English, History, Languages, Philosophy, and Religion. How does History or Languages relate to the inapplicability of a logical model? Initially it sounds like a condemnation, but in reality, it has no relation to the arguments made against MVC!

I can understand, how initially, MVC may be confusing to some people, but when one studies it, it becomes apparent that it is a logical representation of the world, and it just so happens to help code organization and understanding.

Comments are off for this post