The next generation of programmers
Over the last few weeks, I have been doing something which I think is really interesting and awesome. Many months ago I signed up to something called Code Club which is a semi-government funded scheme that puts experienced developers like myself in public places like schools and libraries in order to help them learn the basics of programming. To do this, I did have to go through what is known as an Extended DBS which basically checks my history for things like criminal records and is there to protect children.
The DBS check itself requires you to supply several forms of ID, and proof of where you live plus at least the last 5 years worth of addresses. If you move as often as I do then you might understand just how tricky this is to remember dates as to when you moved into or out of certain places. Still, the DBS check is free and a company out there called STEMNet make life a lot easier by giving you online forms to fill in. You may have already guessed by now that STEM is an acronym and stands for Science, Technology, Engineering and Mathematics. As a STEM ambassador, you are out to get involved in a scheme where you can helper a younger person in one of these activities. The process of getting the certificate takes a couple of weeks but is valid for a year and renewable via STEMNet for free.
CodeClub is a volunteer-led scheme that has put together some courses designed for the younger generation using three different languages. Scratch, HTML & CSS and Python and it’s Scratch that I wanted to focus on for this particular piece. So Scratch is made by those brainy folks at MIT and is designed as a language to be used by children aged 7+ and has a very strong community behind it.
The interface takes on a very visual look by making each piece look like a puzzle. The puzzle pieces are split into colour groups and snap together to try to help the user understand what it is that they are telling the computer to do. There are ten colours in total which break up then language into understandable chunks.
- Dark Blue – Motion
- This moves sprites about, rotates them and so on
- Purple – Looks
- Controls the visual look of the sprite like colour, size and animation, or change the background
- Lilac – Sound
- Attach sound to a sprite action or put together a sequence of sound on certain events
- Dark Green – Pen
- Draw directly onto the screen
- Orange – Data
- Variable usage and assignment which is introduced to the child in the third tutorial set out by Code Club to get them familiar with storing data
- Brown – Events
- Event handlers for pressing keys on the keyboard and integration with sprites
- Yellow – Control
- Conditional statements to enable the code to loop of or make decisions like “If/else” or “forever”
- Light Blue – Sensing
- Sprites can detect when they hit an edge or another sprite
- Light Green – Operators
- Mathematical operators to enable addition, subtraction, mathematical operators and so on.
- Dark Purple – More Blocks
- Custom procedures and external device control like Lego Windstorms and Arduino
My job as a volunteer is to help guide the child through the tutorials trying to get them to do as much as they can by themselves and help where necessary. The general idea is to encourage and get them to try things out to see what happens. You’ll get some kids who will just follow the instructions and then when they are finished they want to move on, others who will go almost totally off topic. I find it best to try and get the child to work through the entire example first following instructions as best as they can, before deviating. I also like to get the kids who want to just move onto the next project, actually stop and think about the project they have built and what they can add to it and personalise. For example, one child a few weeks ago finished a little game where you have to click on ghosts to score points. He had managed to get the game working and had an applause sound attached to a plane sprite that he had added because that’s what he knew how to do. I set him a little challenge to actually play the applause at the end of the game automatically, then a second challenge to play a different sound if the player scores below a certain value of points.
I will warn you, it can require a lot of energy to do this. You need to always be enthusiastic no matter how far off the mark the child may be. It’s beneficial for me too, to find new ways to explain things to people and develop my confidence. I do also find it utterly fascinating and fun to watch their imaginations run riot. It reminds me a lot of playing with Lego in my youth, how I would diligently follow the instructions to build the set, then break it up and put things back together differently to see what else I could build. Go and have a look at the Scratch wiki and most of all, have a play with Scratch itself. If you have children or relatives who have children that are coming to the age it may benefit you to learn a few things about it and then enable you to create with them.
If you would like to get involved with Code Club or a similar STEMNet project then we would advise you go and register your interest either as a volunteer or an organiser of a club. We would love to hear what you get up so do come back and tell us your stories via the usual channels of Reddit, Twitter and Facebook