Leigh Ann Sudol is one of those exciting and energetic teachers that make one ask "where were teachers like that when I was a student." She's awfully smart and has taught computer science both in high school and more recently at Carnegie Mellon University. I first met her while grading the AP CS exam a number of years ago. I was her "acorn" which means she was in charge of training me as a grader. What a ride that was - let me tell you!
So when Leigh Ann challenges the rush toward using games and robots to teach computer science as short sighted and with only short term benefits it made me think. She says:
I believe that the “programming to write games” approach in isolation is actually incorrect in its underlying premise that because students enjoy playing games, teaching them to program games will motivate them to deep learning in CS.
I don't know that everyone rushing to use games in their computer science class has that for their underlying premise and I said so in a comment at her blog. I thought I might bring the discussion up over here as well, add a few more thoughts, and see what others think.
My motivation for using games in high school computer science classes (and textbooks) was largely several fold.
- Students understand the games which saves me time
- Games are generally seen as more relevant than contrived examples
- Testing games is more fun than testing other projects which makes students more likely to test their programs
- Students can more easily share game projects with peers
Take a game like tic tac toe which I often used as an early project for decision structures and arrays. Students all know how to play the game so they know when it works and when it doesn't. I don't have to explain why a particular result is wrong. I don't have to explain the rules in great detail. Setting the back story is easy.
Since students understand the game and have played it all their lives they see it as relevant. Is it an important skill/concept that prepares them for life? Not hardly but I can wait for later to take them down that path.
Students, because they know when the game is right, can test it easily. Not only that but they can get their friends to help. This adds a cool factor that I believe helps some students. When is the last time kids got together to have fun proof reading each others "perfect paragraph?" Ok there is a contrived counter example but you get the idea.
Now I do agree with a lot of what Leigh Ann writes about "the reasons to learn and explore CS are larger in nature." Clearly there are a lot more great reasons to learn computer science than to create games or run robots around the room. And there are programs looking at exploring computer science in the context of other diciplians. Georgia Tech's "Media Computation" for example. Or the Connections program at Wheaton (MA) College that intigrates computer science with a number of different diciplanes including a genomics program that integrates biology and computer science.
Each of those seems to attract students who are interested in "the other field" ie the one that isn't computer science to some extent. But at least there is some intrinsic motivation to learn the CS concepts. The fact is that there are a lot of areas that require computation and those of us who are trying to encourage students to enter the field probably need to use every tool at our disposal.