Writing a comment for Alfred Thompson’s CS blog post “Lines can be fun” got me thinking about what I want to teach and how I want to teach programming. My advanced kids have been grinding through “Programming in Visual Basic 2008” by Bradley and Millspaugh. It is a good book to teach simple coding; comprehensive and easy to read, but absolutely boring. The projects are just plain uninteresting. Computing sales for a coffee house just does not interest kids. The book is intended for entry level so it cannot get too crazy but you would think authors would realize that this does not attract kids to programming. With all the blog discussions and statistics flying around it seems obvious we (the US education system) are having a little problem with attracting students into CS. Most intro books on programming just reinforce the stereotype that programming is about as exciting as watching grass grow. The last few years our Programming I kids (usually sophomores) started out doing this type of programming in VB. Attrition was high. The only Programming II kids I got were the diehard programmers or those that could not find a class in that time slot (small school, not many choices). This year I convinced the Programming I teacher to switch to Scratch and to make games. The kids are enjoying the class, are proud of the games they make and best of all they are learning quite a bit of programming. The class has nine kids, four of which are girls. Keeping girls in CS has been a big issue for us. I think I am going to get three of them in PII. The gaming approach allows the kids to be artistic, imaginative, original and requires lots of planning. With the previous VB/textbook approach all the assignment solutions looked identical, not much originality is required in a checkbook program. With the games they are all original. They get ideas on how to solve the programming problems from each other, but the code ends up looking quite different for each student. It is really hard for the kid that wants to only copy some one else’s code for turn in to do so. And they really do not want to; they want some ownership and uniqueness to their game. The games are not fancy. The first is just getting an object through a maze in time without touching a wall. The next game adds bouncing objects to the playing field that need to be avoided while going through the maze. Presently they are working on their own version of the “Red Square Game” which is a simple dodge the bouncing objects game. It is a bit creepy during the class; a bunch of main stream students exclaiming how cool their program is and trying to outdo each other with their program. It is just not normal. So my curriculum is going gaming.
My curriculum is going gaming