While Kodu Game Lab could be useful in coding classrooms, it may shine brighter as a tool for cultivating 21st century literacy skills and using game-based learning approaches. Students can work in project teams to design and develop games inspired by something covered in class or games that teach content to other students. It also could be a way to have students examine their own executive functioning: How do they approach making a game? What do they do first? How do they organize their steps?
As simple as Kodu makes things, however, it's still possibly a bit too obtuse for the uninitiated, who might begin more successfully with something 2D, like Scratch or Hopscotch. Likewise, for more advanced coders, the visual coding interface may feel bulky and slow, so they might enjoy something like Swift Playgrounds more. Kids who do take to the platform can create engaging games to demonstrate knowledge or share with peers.Continue reading Show less
Kodu Game Lab is a tool for making 3D video games without all the complexity of delving into actual code. Kodu's visual menus let students act as game designers, pointing and clicking to create objects (and worlds) and defining their behaviors in the game through visual "if this, then that" blocks. When finished, students can share their worlds and games online for others to play.
Kodu provides tutorials and curriculum, which includes basic introductory lessons to the platform, science and math activities, and explorations of the game design process. The user community also has created many other tutorials and guides for various subjects.
When teaching coding, it can be hard to keep students engaged, since it takes a long time before they can create anything substantial. Kodu Game Lab tries to avoid boredom and frustration by letting new programmers do the fun stuff first: Building a colorful 3D world and adding characters and objects only takes minutes. Once the world is in place, students dig deeper by adding programmatic behaviors using a simple "if this, then that" visual language rather than writing actual code.
As an introduction to programming, Kodu does a great job of showing how designing a game (or other piece of software) requires breaking the problem down into individual parts. The colorful block-based code encourages discovery-based learning by toying with a core foundation of computer science: procedural logic. On the other hand, kids don't learn actual code or work with programming logic that they can take beyond the platform. It's better for teaching kids what coding can do (i.e., create cool games and experiences) than what coding really is.
Key Standards Supported
Define a simple design problem reflecting a need or a want that includes specified criteria for success and constraints on materials, time, or cost.
Generate and compare multiple possible solutions to a problem based on how well each is likely to meet the criteria and constraints of the problem.
Plan and carry out fair tests in which variables are controlled and failure points are considered to identify aspects of a model or prototype that can be improved.
Design a solution to a complex real-world problem by breaking it down into smaller, more manageable problems that can be solved through engineering.
Use a computer simulation to model the impact of proposed solutions to a complex real-world problem with numerous criteria and constraints on interactions within and between systems relevant to the problem.
Define the criteria and constraints of a design problem with sufficient precision to ensure a successful solution, taking into account relevant scientific principles and potential impacts on people and the natural environment that may limit possible solutions.
Evaluate competing design solutions using a systematic process to determine how well they meet the criteria and constraints of the problem.
Analyze data from tests to determine similarities and differences among several design solutions to identify the best characteristics of each that can be combined into a new solution to better meet the criteria for success.
Develop a model to generate data for iterative testing and modification of a proposed object, tool, or process such that an optimal design can be achieved.