Sunday 5 August 2012

Kodu


As we progress into an increasingly technology driven age, individuals are increasingly using ‘smart’ devices with a multitude of functionality. As this trend continues to surge the need for software developers is consistently rising. This brings up the inevitable question of, are we doing the best we can to teach our kids the skills required to succeed in this expanding field? The general consensus to this question has been no and the ability to teach programming skills is often central to this debate. In fact some have gone so far to suggest that programming should be taught in schools as a second language.

Even if it’s agreed that programming should be taught in a school environment there are still many hurdles that must be overcome before this can become an actuality. Most teachers do not have the skills to readily teach programming, particularly in an early school environment.  Where would the resources come from if we decided they needed to be reskilled to suddenly be able to code? A young generation needs these skills available to them now or we will simply be left behind in the wake of countries more forward thinking and ambitious.

Another common question that arises when we consider teaching programming is what coding language do we use? Programming languages vary from the higher level languages such as Python to the lower level and less forgiving languages such as C++. One of these options is perhaps a less daunting entry point for beginner programmers but may not always encourage good coding practices in the long run. The other option of teaching coding from the ground up in a lower level programming language would provide a high initial challenge but potentially results in instilling good programming practises from the outset, discouraging ‘sloppy’ coding… The challenges are many, so what about initiating our students in the concepts of software development from an early age?

This is where the Microsoft developed Kodu development tool could come in handy. Kodu is aimed at the late primary, early secondary school age bracket (they say ages 8 and up). It removes the need for students to understand complex code structures or remember syntax. Instead it focuses on teaching the principles of coding logic, planning is still required but it’s contained within a more manageable and fun environment. Kodu provides what is described as “fun and creative environment for designing, building, and playing your own new games”. What Microsoft have done here is combined the fun of creating your own game with the challenges of coding. The idea is to remove the impression that programming is difficult and a bore.



The software itself can be run on either a PC or Xbox 360 platform. This means that students are more likely to have access to Kodu from home, the very fact that it’s available on a popular games console would likely make it much more appealing. This also provides students the option of using the less complicated Xbox 360 controller rather than keyboard and mouse.


The Kodu language is designed specifically for game development, and as such comes pre-loaded with specialized objects for gaming scenarios. Programs are expressed in real world physical terms. Character and object behaviour can be controlled with concepts such as vision, sound and time. While not as general-purpose as classical programming languages, Kodu can express advanced game design concepts in a simple, direct, and intuitive manner.

Instead of typing if/then statements forming a syntax, a student may use the Xbox controller to open a radial menu that contains options to choose from. The Kodu interface resembles a video game with a 'point and click' interface. This simple looking icon-based interface controls the programming actions the user can generate. Landscape can be generated onscreen simply by dragging a cursor around. Terrain height maps are easily editable by selecting the raise or lower terrain options, the blocky world conforming to the player’s inputs.

Environmental objects can be placed from a selection of gaming themed primitives. The kinaesthetic elements here most definitely would appeal to visual learners. The atmosphere can be changed from a bright sunny day scene to night-time, to something more alien.

The normally complex process of creating movement paths can be set with a few clicks or button presses, placing nodes at each point. Characters or objects can then be assigned to follow them as part of the game environment. Generally when creating a Kodu program the emphasis is more on the creative aspects of game design rather than the technical ones. However it still exposes users to the challenges that would be faced at a professional level, albeit in much more manageable conditions.

Once the game is created, students can play it and see if it performs properly or if something isn’t working as intended. As is often the case even for professional coders - things don’t always go right on the first try and some debugging is required to identify where changes need to be made. This often results in a methodology of coding a little, then testing in small repeatable chunks. I believe this could potentially have a strong positive impact of teaching students effective work practices. It would also aid in developing thinking routings, along with reinforcing the importance of planning and building things incrementally.

I'd suggest primary school teachers seriously consider implementing Kodu into the learning environment. On a technical level, Kodu is visually appealing, the bright colours and clarity make elements visually distinct and easy to identify. Any opportunity that can be taken to allow students to get creative and have fun while learning should be explored. A drawback is even though it has rather low system requirements, its resource usage scales up quite a bit the more objects within a scene. This can cause limitations based on user hardware, but this could also encourage students to come up with clever design in their levels to avoid this. Designing a game process can be very beneficial to young learners developing habits of mind. It relates learning to the real world or home environment via the Xbox 360 medium.




No comments:

Post a Comment