Teaching Basics of Programming to Youth with Games

Unity Development Environment Figure: Unity Development Environment

There are many approaches to teaching the basics of programming from traditional lecture-type teaching in universities to interactive courses (CodeCademy) to MOOCs (mooc.fi). I recently taught a basics of programming course to teens, arranged by the local center of STEM education, LUMA. The course lasted for five days with the goal of introducing complete novices to the basics of programming (variables, control structures, loops) and the basics of game development.

One of the basic premises for the course were that students are more highly motivated to learn programming when the skills have immediate and interesting opportunities to apply. That is why the development environment for the course was Unity, which is a physics-engine centered game development environment. The basic interface of Unity resembles an user-friendly 3D modeling program, where one can for example deploy basic geometric shapes or imported 3D models. These objects and the environment can then be further controlled with C# or JavaScript programming languages. For example, it is easy for a beginner to create a pinball game by defining the level, adding a sphere and connecting the flippers to the keyboard by programming.

The curriculum of the course included basics of programming in JavaScript and C#, basic principles of game development and games as a creative industry. The course had positive outcomes, with all students with full attendance passing programming assignments and many participants improved on the basic game template with advanced features like timed platforms and ramps. At the same time they gained very practical feel of what basic programming language features can accomplish by immediately being able to control objects in an environment beyond what a basic command line could offer.