Monday, August 19, 2013

Learning To Program By Programming Games

There seems to be no end to the development of games that meld making a game and playing a game. Kodu is one example I have been using for a while. It’s designed for younger students. Growing out of that is Project Spark ('Project Spark' tower defense game creation video is mind boggling) from Microsoft. Recently I ran into Beta the Game which, like Project Spark, is not out yet.  There are other tools along these lines (roughly) which I list a block programming platforms elsewhere on my blog. They all seem like so much fun. They all seem like they would really engage some subset of students. Kodu clearly does in my experience. As do Alice and Scratch. But do they really teach programming?

Well probably they do but the real, deeper question is how well do they do so? Alice, Scratch and Kodu tend not to do variables very well. If anything I see them as variables late sorts of tools. This was mentioned as a negative at a SIGCSE talk I heard a few years ago (sorry I don’t have the reference handy). 

They are all sort of kind of object oriented but is it really enough? I’m not so sure because there really isn’t much research on the topic. Not that there is no research. I know that the Kodu team did some early research with a couple of schools and systems. And various facets of Alice have been researched  with Storytelling Alice being the most widely known.  How much of this research gets beyond the publication and presentation at conferences stages and into general knowledge is not that clear to me.

Could I look into this more? Of course I could. And if I were doing a graduate project I would. But how does the average computer science teacher get to know what works beyond stories from friends? At the conferences we attend (CSTA, ISTE, TCEA, etc.) we see mostly sessions on “how to use” these cool new tools. I’ve been “guilty” of this myself of course. I’ve presented no end of tools that seem to me to be cool, to be helpful, to be interesting and which I think with little evidence will be helpful for teaching computer science.  I even earned my living doing this for a while.

We all have these great ideas. We all fall in love with tools that excite us and which our own brand of logic assures us will be the greatest thing since the stored program computer. As I sit her preparing myself to teach a new school year (first day of students is this Friday) I find myself wondering if I have selected the right tools, the right projects, the right everything and anything to use this year. It’s a bit scary.

In the end I believe that they key thing is not the tools or the textbook or any of those things but the teacher and their interaction with their students. Are the concepts covered in a way the students understand them? We can measure that to some real extent. Does the teacher communicate enthusiasm as well as information? Are the students turned on to or off from the subject? Subjective for sure but real. Did I do the best that I could? Did I constantly look to figure out what I could do better and make things more understandable (and fun) for the students?

Ready or know the new year is coming and with or without solid research behind it I intend to do the best that I can with what tools I have available to me. Let’s rock and roll!

1 comment:

Garth said...

At the level some of these tools are being used what are we trying to teach? Coding through programming or problem solving through programming? I guess some of the problem lies in the definition of “programming”. When I started this CS teaching career I thought programming meant coding. After many years I am pretty sure programming includes coding but programming is, or at least should be, more problem solving with various tools to accomplish a set of tasks.