Alfred Thompson’s Computer Science blog is on my daily read list. It is always packed with useful discussions and great links. Since I use Small Basic with my Programming I classes I was real excited to see a link to a couple of teachers that had written some material called Small Basic Recipes. I was a bit stunned by what I found. The two teachers had built a series of templates made of Small Basic program comments. The students take these templates and build the code to fill in the comments. The objective is to guide the students in the direction needed to write the code for a series of simple projects. This comment template is so counter to everything I attempt to teach that the fact someone would go to the large amount of work required for this project totally shocked me. Maybe the fact I am seeing this project out of the overall curriculum context makes it look like such a poor idea to me. The templates are great, if all you want to do is teach kids how to write Small Basic code. I, on the other hand, think writing the comments is the very basis of teaching and learning to program. If you can write the comments correctly and clearly then the code should be a trivial exercise done by unimaginative people. The comments are the key to teaching programming, not the code. Given well written documentation and comments a programmer should be able to construct the code in their language of preference. The first reading assignment I give my Programming I students is The Art of Code Documentation by Drew Sikora. The article discusses the importance of documenting and commenting the code. If I had the time I would love to design a semester around the concepts in this article. I think a semester of writing documentation, comments and pseudo-code would the perfect way to start learning programming. (I also think it would be as exciting as watching paint dry. Banging out code and getting something to happen is just plain fun at times.) I could care less if my programming students can generate code by the mega-line. I want them to be able to take a project, break it down into manageable parts, visualize what needs to be done, and then write a series of comments that gives that visualization a foundation or framework. In my opinion, programming is not typing code; it is designing something that can be adapted to code. I do think there are some possibilities in the Small Basic Recipes as examples of the comments-to-code step and perhaps that is the intent when placed with-in the overall concept of their curriculum. But as a stand-alone project I simply believe it is the absolute worst way to teach kids to program.
My comments here and the approach that Small Basic Recipes uses does bring up the question inquiring minds want to know – what are good pedagogies for teaching programming and what are bad ones? Since there seems to be a major shortage of methods course for teaching programming in university Education departments (at least that I can find) it is a wonder we have any programming teachers with any consistent methods. But that is a subject for a whole new blog.