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