“I want to teach someone’s first programming class” my geek friends have heard me make this comment far too many times. So I reckon I better explain myself …Being out of uni for less than 5 years means I can still vividly remember my struggle to understand and find the relevance to real life in what my lecturers were continuously and tirelessly trying help me understand.

Ok so this is not a rant on my lecturers I believe they did the best they could. This piece is more of a rant on the programming curricula or course plans.
I believe the issue of high drop out rates in programming courses is due to a fundamental flaw of how programming is taught: The aim of most programming courses are to teach students to write programs [in a, b and x languages] but maybe the aim of any programming course should be to teach a student to solve problems using programming principles.

So here in lies our problem, teaching students how to only write programs means that programming principles and constructs like recursion , data structures , hashing are taught as informative exercises rather than as an exercise to teach why these principles are important and in what ways they are needed to solve real life problems.
I remember struggling to understand why I was writing a programming assignment to loop through and output the values 1-10 or programming to traverse a tree structure or to add and delete nodes from a linked listI am not saying these exercise didn’t help in the long run I am just saying it might have helped give the couple the hundreds who drop out or failed their programming classes a better chance. Maybe? Or is it more a case of survival of the fittest?

I am no educationist but this is my 2 cents if first year programming classes were more about teaching students problem solving through programming whilst leaning heavily on giving students the knowledge and skills to write good solid algorithms, I might have enjoyed my first year and second years of programming in the university before the light bulb came on in my third year.

Like anyone who has being the same boat, once the light bulbs came on [I took enough internships to give me real life programming experience] I came to understand the underlying principles, why they were necessary and where they could be best applied. By learning this switching between programming languages became much easier.
So back to my original statement why do I want to teach someone’s first programming class? Having survived C++ in my first semester and Java in my second, I have being through and understand the struggle of being a first time programmer. I now understand the reasons why that was such a struggle and understand what is important for a programming course i.e. problem and solving and making programming fun as opposed to a chore …So next semester then…

Go on what was your first programming class like? Did you enjoy it? If not what could have being done to make it a better experience?
This entry was posted on Thursday, October 9th, 2008 at 12:39 am and is filed under Education, Inspiration. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.