Sunday, August 18, 2013

Video Game Design as an Intro to Computer Science?

We have coders. We need creative problem solvers that also code.

My high school students will likely need a job some day (I actively encourage them to not be dependent on the government if they can help it), and these jobs will likely involve computers in some way. While they may not become expert programmers developing software, the very pursuit of understanding the 1's and 0's will make them better problem solvers, systematic thinkers, and help them understand that the consumption of their daily technology is only a fraction of the overall picture.

Some say we're heading toward a major shortage of qualified individuals in computer science. We need to reverse this trend and get more students interested in computer science. I don't consider the use of games as incentivizing computer science. Rather, I consider it situated learning with real-world application, a missing component in many intro to CS classes.
GameMaker Studio software being used to develop game design
curriculum within 3DGameLab with ties to Computer Science

Why video games?

What I propose is "easing" students into computer science by first developing their confidence through positive experiences in the form of creating simple yet fun video games. This confidence has lead to creativity in my classroom, and more students that want to branch outside of video games into more complex programming languages (which I don't claim to understand). By working phrases such as, "IF my character has no health...THEN what all events should take place?", students become accustomed to identifying and planning the steps of a game program, and have been able to transfer this thinking into beginner-level Python programs as young as 6th grade. During a Python turtle exercise I heard, Without prompting, one student tell another, "remember in your game, where as long as ammo is greater than zero, your guy will keep shooting...and each time he shoots ammo goes down one...that's like what 'for i in range' does in turtle".

Is Game Design "Computational Thinking"?

By the CSTA's definition of "computational thinking",
game programming seems to be a good fit.
The Computer Science Teachers Association  uses a working definition of Computational Thinking that can be boiled down to using a computer to solve problems using models and simulations through an automated series of steps (an algorithm) that can then be transferred to other, more complicated problems (Computer Science Teachers Assocation [CSTA], 2011). The complete definition is here.

Creating video games using the freely available GameMaker Studio for example, addresses this definition in that:
  • "use a computer to solve problems" - all work is done on a PC, Mac, or Linux. The problem is both any particular feature of a game the designer wants to include in their game, and those mistakes that arise from mistakes. For example, the power-up dot in Pac-Man that temporarily changes how collisions between characters behave.
  • "...using models and simulations" - The game being created can be ran in debug mode which allows the programmer to simulate the player's perspective, playing the game. Debug mode gives a behind-the-curtain look at the status, position, and other variables of game objects and what they are doing while the user plays the game. It also provides errors in layman's terms that help find the fault, aiding the programmer in troubleshooting.
  • "...through an automated series of steps" - GameMaker code runs 30 "steps" per second. It can be automated by using if-then statements, alarms (like alarm clocks that trigger another set of actions), and other methods that provide game programmers control of how the program behaves without intervention from the player, all within a pre-programmed sequence.
  • "...that can be transferred to other, more complicated problems" -  The use of loops, variables, and if-then statements are concepts many programming languages have in common. By mastering these early, students use these ideas to solve increasingly difficult problems. For example, the initial "if can_shoot = 1" allowing the player to shoot can later increase to control a boss character's patterned shooting with a more complicated series of delay-and-shoot patterns that vary as boss_health decreases.

While potentially a conflict of interest, Mark Overmars (Original creator of the GameMaker game design software) described the use of game design to teach computer science concepts as actually covering several aspects of computing, including, "computer graphics, artificial intelligence, human-computer interaction, security, distributed programming, simulation, and software engineering" (Overmars, 2004). Familiarity with these topics are essential for students hoping to land one of the one million jobs that will go unfilled in computer programming due to a lack of qualified candidates (code.org, 2013).

Video Games are Engaging

It seems that teens like to play games. According to Pew Internet 
Research (Lenhart et al., 2008), making them prime candidates for playing the role of designer to make their own games. Teen boys and girls both play games, with 99% of boys and 94% of girls reporting playing games in the most recent week (Lenhart et al., 2008). Presenting a game design curriculum to younger teens may prove even more successful in 5th through 7th grades as they were even more likely to have played games yesterday than the their older counterparts (Lenhart et al., 2008).

Creating these games can also be engaging...when a student has enough confidence in their working knowledge to apply it as challenges pop up. I was initially turned off to programming as my experiences as a student involved the skimming of fundamentals that I didn't internalize, leading to a bunch of programming challenges that were endlessly frustrating as I didn't feel I had any idea where to start.


Still a theory

Relatively little research has been done on whether a student learning to program a video game correlates with learning computer science. Likewise, it may be a matter of interpretation on whether understanding programming concepts through a drag-and-drop design interface constitutes a foundation of computer science knowledge in the first place, and further, whether it leads to a higher enrollment in college CS.

Researcher credentials? Meh.

We educators on the front lines can implement and test such a teaching strategy as effectively as those with more letters behind their name. While more formal researchers may have deeper statistical analysis and better channels to disseminate results, we classroom teachers aren't half-bad at creating a curriculum using games as learning tools.

One such study about students creating video games as a means to teach computer science actually determined that students were divided on whether or not the use of GameMaker software helped them learn computer science concepts (Ernst & Clark, 2011). While this could be attributed to teachers inconsistently tying what students have learned back to the overarching CS concepts, it is worth reading if considering this approach.

Possible Implementations

Steve Isaacs
Game Dev Teacher Guy
1) In August 2013, a colleague of mine, Mr. Steve Isaacs (he teaches game development to his blogs about game development in education) and I will be joining with gaming-in-school pioneer Lucas Gillispie (The Wow in School and Minecraft in School guy!) to work with teens at the online Teen GameLab summer camp. We'll be hosting live sessions (like this one last night using GameMaker tilesets and multiple enemy health bars)on digital storytelling and designing video games, but much of the work will be done by the "campers" asynchronously through the quest-based learning platform 3DGameLab.
students and

2) Another teacher, Mike Skocko (and his exemplary educator site The Mac Lab)in California is
Mike Skocko
aka "boss"
utilizing student talent to develop a quest-based learning Wordpress Plugin in-house to teach everything from game design and programming to video and image editing.

Next?

While a foundation of game-based learning research is being assembled, I'll just keep playing making video games with my students, learning more everyday. I've figured out the key is to never stop being a student myself, and it all stays fresh feeling and fun.



References


code.org (2013). What's wrong with this picture? Retrieved from http://www.code.org/stats


Ernst, J. V., & Clark, A. C. (2012). Fundamental Computer Science Conceptual Understandings for High School Students Using Original Computer Game Design. Journal of STEM Education: Innovations and Research13(5), 40-45.

Lenhart, A.,Kahne, J., Middaugh, E., Macgill, A., Evans, C., & Vitak, J. (2008). Teens, Video Games and Civics. Retrived from Pew Research Center website: http://pewinternet.org/Reports/2008/Teens-Video-Games-and-Civics/04-11-Who-Is-Playing-Games.aspx?view=all

Overmars, M. (2004). Teaching computer science through game design.Computer37(4), 81-83.



Friday, March 15, 2013

3DGameLab - Back in Session


Let it Begin...

Mr. Suter 3DGamelab students creating Avatars like GarlicMy 6th graders are off to a good start. They created their character avatars using Hero Machine this week. I gave them a brief look at my Popplet (I haven't shared it publicly YET) that shows the progression of quests as a sort of "trailer" for things to come.
They are excited! Quests waiting for them to unlock include:


Getting Started

I removed last year's users and added all of this years by inviting them through the teacher Dashboard. To quickly invite them all:
  1. Using Gaggle.net (you could use any method to get a list of your student email addresses), I copy/pasted all their email addresses from my list of users (free for ~200 users, first must attend a webinar of sorts, then become an administrator, well worth the trouble)
  2. Set check the default group they should be in ("Mr. Suter's Level 6" in my case), then invite.
I used a similar method of copy/pasting email addresses from my teacher dashboard on Diigo.com (free educator upgrade) so students have a place to keep their own list of oft-used URLS.

Excited to be in 3DGameLab again, creating quests, creating new content alongside my students.