I speak a lot with parents to orient them about computer coding for their kids. I recognise they are sometimes concerned about the current trend in children’s computer education being centred around games. As I keep up to date with the latest digital literacy education tools, resources and web apps, I have noticed a proliferation of games that claim to teach coding (or computer programming). It takes time and critical thinking to determine which products are actually beneficial in learning computer programming and which products are just games with rules to follow (i.e., just games) and transferable skills achieved are minimal.
The Coding Kids philosophy on digital literacy education is based on fun and engaging experiences that lead to self-driven learning in computational thinking, problem solving, technology creation and digital literacy.
To clarify the Coding Kids approach we need to start at the beginning:
Playing computer games (technology consumption) is not the same as developing the software to build games (technology creation). As Malcolm Turnbull, Prime Minister of Australia, once said, “It is important that we move beyond only teaching students how to consume technology and instead focus on technology creation.”
At Coding Kids we focus on technology creation because this is the foundation for developing software, and writing programmes and apps whether it is enterprise software, data analysis or game design. The skills associated with game design transfers to all other software development. These skills include problem solving, logic, algorithmic thinking, maths, user interface and design.
Our approach is based on game design because for kids, play, fun, and engaging experiences are key to learning. Focusing on building enterprise software or data analysis at primary school level may seem too far removed from a child’s experience of the world. Let’s not underestimate the power and complexity of games and the creativity and complexity involved in creating them.
The projects we build are not solely games as we also create multimedia art and story animations. There is plenty of flexibility in our classes for children to develop their own projects. This could range from creating an original game to solving a local, social or community problem.
I'd love to share with you an example of what we do in class and the learning outcomes it brings. Here is a link to a simple Pac-Man-style game that we built in Scratch.
In building this game we learn the following fundamental computer programming concepts:
- Sequencing - a computer will execute the commands from top to bottom unless specified otherwise and that one action or event will lead to another
- Branching/Decisions - telling a computer to make decisions based on conditions
- Looping - programming a computer to repeat actions either for a set number or forever
- Collision detection - determining whether two objects are touching)
- Variables - storing data (keeping score by storing this data in a variable called 'score' and increasing the value at specific events e.g., when Pac-Man eats a dot
- Cartesian coordinates with positive and negative numbers - using coordinates to control the movement of objects in 4 directions
- Using randomly generated numbers to create a randomly moving object
- Creating animations using a sequence of still graphics
The last thing I want to do is to tell children that we are about to learn algorithmic thinking. But if I ask them about their interests, whether they like to play computer games, which computer games are their favourites and why, and whether they had ever thought about developing their own computer games, then they are hooked.
In class, our discussions run wild with all the possibilities of developing our own computer games: all the levels we can build, how we are going to design challenges for the player, what collectibles we can create to power-up the player’s character, whether to allow multi-players and many more game features. Computer game design is an exciting world that encourages imagination and storytelling.
What the children don’t realise is that in creating their dream worlds in computer games they are actually learning problem solving, computational thinking, maths, graphic design, user interface, technology creation, and digital literacy. But that is not how we get them hooked. We tell them that we are going to build computer games and animations.
Learning computer programming, regardless of the programming language, e.g., Python or C++, requires an understanding of programming fundamentals. Building enterprise software or analysing research data at university requires the same approach to problem solving as game design. Learning computer programming fundamentals in Scratch develops transferable skills e.g. solving ‘real world problems’ and building enterprise software.
So let’s start somewhere fun and build our own computer games.