How to Learn Computer Programming Efficiently through Computer Games: Michael Lee and Gidget

July 29, 2015 at 7:32 am 4 comments

I was honored to serve on Michael Lee’s dissertation committee. Mike’s basic thesis is available at this link, or you can get the jumbo-expanded edition with an enormous appendix describing everything in his software plus his learning evaluation (described below) at this link. His thesis brings together several studies he’s done on Gidget, his game in which he teaches programming. I’ve written about his work before, like his terrific finding that including assessments improves engagement in his game (see blog post here) and about how Gidget offers us a new way to think about assessing learning (see blog post here).

Michael had several fascinating results with Gidget. One of my favorites that I have not blogged on yet was that personifying the programming tool improves retention (see his ICER 2011 paper here). When Gidget sees a syntax error, she (I’m assigning gender here) doesn’t say, “Missing semicolon” or “Malformed expression.” Instead, she says “I don’t what this is, so I’ll just go on to the next step” and looks sad that she was unable to do what the programmer asked her to do. The personification of the programming tool dramatically improved the number of game levels completed. They kept going. In course terms, they were retained.


The dissertation has yet another Big Wow result. Mike developed an assessment of computing knowledge based on Allison Elliott Tew’s work on FCS1 (see here). He did a nice job validating it using Amazon’s Mechanical Turk.

He then compares three different conditions for learning differences:

  • Gidget, as a game for learning.
  • CodeAcademy, as a tutorial for learning.
  • The Gidget game level designer. The idea was to provide a constructionist learning environment without a curriculum. Mike wanted it be like using Scratch or Alice or any other open-ended creative programming environment. What would the students learn without guidance in Gidget?

Gidget and CodeAcademy are statistically equivalent for learning, and both blow away the constructionist option. A designed curriculum beats a discovery-based learning opportunity. That’s interesting but not too surprising. Here’s the wild part: The Gidget users spend 1/2 as much time. Same learning, half as much time. I would not have predicted this, that Mike’s game is actually more efficient for learning about CS than is a tutorial. I’ve argued that learning efficiency is super important especially for high school teachers (see post here).

Mike is now an assistant professor at the New Jersey Institute of Technology (see his web page here). I wish him luck and look forward to what he does next!

Entry filed under: Uncategorized. Tags: , , , .

Tech jobs rise, but ‘silicon’ vision a stretch: The world beyond just computing Why should non-CS majors learn functional programming?

4 Comments Add your own

  • 1. OTR Links 08/01/2015 | doug — off the record  |  August 1, 2015 at 1:31 am

    […] How to Learn Computer Programming Efficiently through Computer Games: Michael Lee and Gidget | Compu… […]

  • 2. Kevin Miklasz  |  August 3, 2015 at 5:01 pm

    I have to say, as someone who has done a lot of informal education, particularly using digital tools and level designers to engage kids in open-ended education, I find your second conclusion pretty offensive. What is learning? I understand you don’t want to share the assessment task used for validity reasons, but I take it as some kind of external test of CS procedural knowledge. Was a child’s ability to create original materials measured? Was a child’s problem solving ability measured? Was a child’s interest or persistence measured? Was a child’s system thinking measured? Was the child’s ability to direct their own learning measured? I’d be much more surprised if any of these measures were worse on the constructivist task than they were on the more directed tasks, and I’m presuming the only real “learning” that increased was CS content or process knowledge.

    It’s when we try to define learning along one dimension, and ignore all others, that statement like “learning is more efficient” become possible. Learning is multi-dimensioned, and attempts to reduce it to a single number or context do a disservice to learning environments and to students. If students spent 2x the time and were engaged in a task but seemed to learn less, shouldn’t that cause you to question whether your definition of learning and assessment metric is broad enough, rather than to condemn the idea of constructivist learning?

    • 3. Mark Guzdial  |  August 3, 2015 at 5:21 pm

      Kevin, I’m not sure which is the “second” conclusion. You’re welcome to grab the large version of Mike’s dissertation which includes all his measures. The measure in the last study was just CS content, but he measured retention, persistence, and motivation in other studies. I don’t see anyone condemning constructivist learning here. Constructivist learning is less likely to lead to gains on a measure of CS learning than more directed methods (which we’ve known for quite a while — see this blog post). Constructivist learning has other advantages, as you say. Informal computing education, however, has some big disadvantages as a learning environment — it draws in mostly high-SES males (see this other blog post).

  • […] like the greater efficiency in using subgoal-based instruction. The work of Paul Kirschner and Mike Lee & Andy Ko also emphasizes more CS learning in less time. If we can teach the same amount of CS in less time, […]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers


Recent Posts

Blog Stats

  • 2,060,332 hits
July 2015

CS Teaching Tips

%d bloggers like this: