It’s been several months now since I boldly stated my intentions to get Miss Chu up and running with learning how to code (despite having zero coding background of my own) without sending her to coding classes. Now I have nothing against coding classes or professional instruction – in many cases it’s a more efficient way to learn. But:
a) I think Miss Chu gets enough structured class time already at school
b) learning alongside her will be useful for me – and will help keep the interest and conversation going beyond class time
c) coding classes can be expensive (I half-jokingly told Miss Chu that if she could learn it on her own she could use the money saved to get a computer!)
d) I want to encourage opportunities for independent, active learning rather than teacher-led spoonfeeding
Anyway… I have a kid who likes to write like this
and read like this
so sometimes the home environment is just more comfortable for absorbing new stuff ?!
But back to the question in hand…did we ever get beyond Hello Ruby’s cardboard computer?
Let’s be honest: life is busy. We haven’t been able to fit in time to learn on a regular basis in the way you would if you’d signed up for a class. In reality, we’ve ended up learning in little spurts during the school holidays, with the odd day here and there spent on it in between. Whilst we definitely haven’t got as far as I’d planned, we are making some progress, so I figured I would share how our journey is unfolding so far.
Starting from Scratch
Scratch seems to be the most popular block-programming software taught to kids in local programming classes here, and there are a lot of resources available for learning it.
We started by following the free guide produced by the software creators at MIT, and have supplemented this Scratch Programming in Easy Steps. I’ve also bought a couple of other useful books – How to Teach Primary Programming Using Scratch (touches a little bit more on the pedagogy of teaching computer science concepts) and a fun lift-the-flap Computers and Coding by Usbourne, which is really child-friendly introduction to computing ideas and terminology.
At the very beginning, I did have to read ahead and have a go myself with some of the projects to be able to guide Miss Chu along. It took her a while to get familiar with the idea of working on a Cartesian grid, using coordinates, etc. We had to cover the idea of expressing rotation in angles and scale using percentages or decimal fractions. Whilst these haven’t yet been taught in school, I found Scratch to be a great hands-on, real-time way of helping Miss Chu understand these concepts meaningfully, as she could input the numbers and instantly see the effect of changing the variables. So yes, Scratch is a good tool for teaching math!
As she has progressed through the various projects, I’m finding that she is able to move on a lot more independently now, with much less help from me.
The fact that most of the projects are geared towards programming games is quite motivating because, well, you get to play your game at the end! We have progressed from simple games like navigating through a maze without touching the sides, to dodgeball type scenarios, through to something akin to Flappy Bird (except that she’s made a Flappy Hippo)
The Flappy Hippo game was written when we attended a half-day Scratch and Makey Makey workshop together at the National Design Centre during the Christmas holidays. We were surprised to find that we were the only ones who signed up… so we got 4 hours of personal attention!
We learned loads that day and had a blast making play-doh buttons and foil pedals to control our Scratch games via Makey Makey.
I first came across Makey Makey when Scottish Opera did a hilarious show at our girls’ nursery in Edinburgh by interacting with pieces of fruit on stage to trigger music and sound effects. We’ve also seen it in action at a local supermarket which had a fruit and veg “piano” set up for a while. Essentially it’s just a small circuit board that allows you to turn everyday (conductive) objects into touchpads that control a range of keys on a standard keyboard.
It was encouraging that, despite our fairly inconsistent dabbling with Scratch, our trainer was pretty impressed by Miss Chu’s knowledge and ability to understand and navigate the Scratch interface and remarked that she was tackling projects the he would usually have given to children in Primary 3 or 4. So, it really is possible to start your kids off in the right direction even if you have no idea what you’re doing! However, I would say that at this point, whilst we are quite capable of following instructions to build a game, we have not spent much time coming up with completely new games of our own. So after the tools have been mastered, it’ll be time to make something more creative.
One interesting issue to note with Scratch is that it does have a “social” aspect – in that all users can share projects online and comment on / favourite / remix other peoples’ work. After her first two projects went online…I had to ask her to stop sharing. Miss Chu was already getting slightly fixated on how many hearts or comments she received and warning signs were going off in my head. How fast can a child get “addicted to likes”?! So we had a conversation about that and she agreed to keep her work offline for now.
Moving Swiftly On
Recently, I came across Swift Playgrounds, an app released by Apple last year to teach 8-12 year olds the iOS programming language – Swift – through a series of game-like challenges. So we downloaded it, and Miss Chu and I have made a start on attempting the challenges.
Swift Playgrounds is a step up in that you actually have to produce written code to execute the tasks. The tasks (so far!) comprise of getting a cute character around a 3D game board, picking up gems, toggling switches and hopping in and out of portals. It definitely exercises your sense of spatial visualization! Having read Hello Ruby and had some experience with Scratch has made it easier to get started with all this, as the concepts presented are not alien to us, even if assembling the code is still unfamiliar. I’m not sure Miss Chu would have felt confident to get on with this without having some prior knowledge.
The first few tasks have been fun enough that Miss Chu is happy to work away at it herself. However, unlike following the Scratch guide, there are no answers to peek at as you go, so you really have to get the code right before you can move on. This means that I’ve needed to keep up to help her when she gets stuck! But the forced learning is good for me…otherwise I’d never make time for it.
Thoughts so far
Just making a start on coding has broken through that initial mental barrier and given us confidence that coding might not as hard as it looks. You just need to take baby steps to gradually understand all the gobbledygook.
Whether or not the ability to code will be useful in future, I can see that even the process of learning to code in itself already appears to be beneficial. Thinking like a computer – and the writing of precise, concise and orderly instructions – does not come naturally to kids! But the practice of coding does nurture a better sense of logic and reason.
Being part of a community to get inspiration, feedback and tips would be great, so it might be something I have to try and orchestrate in future. Fortunately Miss Chu has discovered that her friend upstairs is also learning Scratch, so it’s fun for them to share their work with one another! I do try to deter kids from being on the computer during playdates though.
We still don’t make regular time to pursue all this, but we definitely aim to keep going.
Despite Singapore’s Smart Nation vision, not every school is equipped to offer experiences in coding and robotics at primary school. Coding is not currently part of the primary curriculum and Miss Chu’s school does not offer much in the way of this as a co-curricular activity. So we’ll have to keep going on our own for now. I might try and raise this issue with the IT department!
Meanwhile, I’ve signed up for a Python 101 Parents Coding workshop tomorrow! Gonna get there, one way or another.