At MakerBox we strive to teach process over product. Having a fancy game is worthless unless you actually understand the code that makes it work. Even more important is thinking critically so when you end up with a bug in your code (which you will) you can use logic and problem solving skills to fix it.
In Level Up this term we focused on developing these skills along with self-confidence. We began the term by looking at a simple video game the students then had to recreate on their own using skills they learnt in Adventures in Game Design. As a class students identified the basic game mechanics used:
- Objective: Get to the goal before the enemies touch you
- 4 sprites (hero, 2 enemies, 1 goal)
- Hero – moves with mouse
- 2 Enemies – move automatically, collision detection script = lose
- Goal – collision detection script = win
From there students could play the example game as many times as they liked, but they were not allowed to look at the code. Instead they had to draw upon their own knowledge and deductive reasoning skills to find the answers.
For the following two weeks we developed video games that use web cameras to add a level of interactivity. Players use their bodies as the controller, instead of a mouse or keyboard. It was here we began to have some confidence issues. When trying to recall a script they already knew they would immediately ask for the answer or worse, immediately give up, instead of trying to work through it on their own or with a classmate.
The problem wasn’t knowledge, it was confidence. I never outright gave the answer, but through asking questions such as “What do you want your sprite to do?” and “What type of code block do you think you need to make your sprite do that action?” students always found the answer on their own.
As the course progressed emphasis was placed on four key areas:
- Active listening
- Thinking through problems before asking for help
- Helping others/collaborating to solve problems
- Looking at issues as a whole class
By the last session we had students jumping out of their chairs to help their fellow classmates. Sometimes even with the whole class looking at code it was hard to find the answer, but usually it was something quite small that had just been overlooked, like a missing forever loop or two code blocks in the wrong order.
It is uncomfortable sometimes, but accepting mistakes and working through them is such an important part of the coding process.
Students should remember no one is naturally good at coding. The only way to improve coding skills is through practice and lots and lots of mistakes! Even professional coders end up with buggy code, but they never give up and that’s what’s truly important.
All the projects from this term are available online. If students wish to continue working on their games they can either download their projects to their home computer or fork their projects using their personal Scratch account: scratch.mit.edu/users/levelup2017/studios.