The folks behind Lightbot are making something new and learning about how to better teach children programming as they go. This medium article is well worth a read.

We ran into a big blocker when designing SpriteBox Coding, a learn-to-code game for kids ages 5+. For some kids, code was simply unapproachable.

With our previous game LightBot, we’d already proven that kids ages 5+ were capable of writing complex programs with icons. The goal for our next title was to get kids engaged and familiar with ‘real’ text programming so that they could advance to real programming languages.

Share this:

I’m going to start out by saying that this post is more question than answer. I’m just dumping my brain on this topic in the hope that others can help me produce some answers.

I recently became a parent governor for my kids’ primary school. I think it’s an exciting opportunity to get involved with the school and perhaps help make it better for my kids and for all the others. I already run Code Clubs there and at another local school and have been doing that for 3 years. So I’m accumulating some experience of the different abilities and interests of the kids that come to my clubs. But as a governor I’ve been learning about SEND or Special Educational Needs and Disabilities. The children classed as SEND have a variety of different special needs. Any physical disabilities I feel I could cope with in Code Club as long as they can read and click and drag with the mouse.

But I find myself thinking about children with learning disabilities or autism. How do I make Code Club valuable for those children? I sincerely believe that education should be for everyone and that we shouldn’t be leaving SEND kids behind. Further, I think providing good education to the SEND kids will likely raise the level for the majority of kids in the school. So I don’t think Code Club should be just the preserve of the gifted and talented kids. Certainly we see a lot of those in Code Clubs but the ability to problem solve and construct algorithms or tell stories and entertain with code should be for everyone.

Anyone that has been part of the professional programmer community will know (whether they realise it or not) a number of very smart people that have some kind of autism. Often those different brain processes make for particularly talented coders. So I think it’s really important that as Code Club leaders we’re ready to embrace those kids.

So how can we help them? What can we do that gives them some value? Well of course is depends a great deal on the nature of the child’s special needs. Sometimes a child with ADHD or some form of Autism will take off in Code Club and love it with a passion. They might show a real aptitude – if we can win their trust and learn how to interact with them. And that’s one area where I feel very poorly equipped.

But in other cases, with learning disabilities for example, the child might just need longer to absorb what they’re being shown. They might need a lot of guidance. And this worries me because time is the one thing we don’t have a lot of in Code Club. It’s 1 hour per week and I’ve usually got a room with 10-15 kids in it, all of whom want and deserve my attention. And once again I don’t feel I know how best to interact with a child like that. I have no teacher training and no training in how to deal with kids that have special needs. I know I tend to go very fast with my explanations of things. I find it hard and somedtimes frustrating to slow down. I always want to cram the most value I can into my time.

So as I said, this is more of a statement of a problem or a worry than any kind of useful solution. If you’re thinking about this too or if you’re dealing with it then I’d love to hear from you in the comments below while, of course, avoiding discussing individuals.

Share this:

I’ve been looking for a way to bridge the gap between Scratch and Python and I think I’ve found one! Check out www.penjee.com. It’s a python teaching site that presents the kids with a series of puzzles. They have to write Python code to solve the puzzles but it keeps the visually simple and enjoyable element of moving a character around a maze. The kids don’t need to learn about importing modules or lose the pretty visuals of Scratch. Instead they can learn how to type code. That capitalization matters. That syntax matters. And how to debug problems using a real debugger.

The puzzles move at a wonderfully steady slow pace that gives the kids a lot of time to practice the skills they’ve learned before moving on to the next topic. And the topics are clearly explained through videos and lots of help.

And as the icing on the cake if you’re a teacher you can set up a teacher’s account and then add all your kids to it so that you can see how they’re all progressing.

This site is just WONDERFUL and I encourage anyone teaching kids coding to take a look and give it a try. Also hit them up on Facebook and share them out. They deserve it.

Share this:

It’s been a while. Bit of a year. I won’t bore you with it. But I’m still running Code Clubs and still loving doing it! I’m still struggling with teaching the kids Python because I still feel the gap between Scratch and Python is too far. There are some kids that just want to keep doing Scratch and I feel strongly that they should be allowed to. I don’t think the objective of Code Club is to train kids to be programmers. I think it’s to have fun with computing, to help kids understand broadly how computers work and to help them understand that computers can be programmed to do what they, personally, want them to do. I also want to give kids inquiring minds that can solve problems and create processes and algorithms. And most of all I want to share with kids my joy in computing and technology.

So Python is on my mind because we’re at the halfway point in this term and I want to give the more programmery kids the opportunity to try it with me around to help them. So I’m looking again at beginner Python projects. The Turtle ones are probably the most visually interesting. If you know of a game creation library that could help us make Scratch style games in Python then please let me know!

And for the Scratch kids I’m creating my own projects as well as using the Code Club projects. My latest is this one – a classic Space Invaders. I’ve always wanted to write this. I’ve often though about how I’d solve the problem of making the invaders move as a block, travelling the full width of the screen despite the size of the block changing as you shoot the invaders. In the end you just need to set a flag when any one invader gets too close to the edge and then when the flag is set change the direction of movement.

The next big question is how I add bases. It’s going to have to be a collection of sprites I think. Not decided how many yet. And I’ll need some re-usable code to place all the sprite blocks together in the right arrangement to look like a base. And hope it doesn’t slow things down too much. That is the biggest challenge with Scratch.

I don’t expect my Code Club kids to write their own version of Invaders. It’s meant to be inspiring and perhaps a remix starting point for anyone that wants to modify mine. I make these things as much for my own enjoyment as theirs.

Share this:

Today I’m making more python with the kids. This time we’re talking about the if statement. Based on Code Club project 5 – Gameshow, which I’ll go through with the kids on the big screen, this is a more sophisticated game that those kids who feel more advanced can take a look through and copy from if they wish. It’s the basic Blackjack 21 game. In my version you play against a slightly sassy computer opponent. It might be fun getting the kids to change some of the messages to make it even more acidic.

Share this:

So I finally did it. After 2 years of teaching Code Clubs I finally started doing some Python with them. For a couple of reasons I’d not managed it previously. First of all getting Python onto the school computers was difficult for reasons I’ve discussed before. But also I wasn’t seeing sufficient mastery of Scratch to convince me that the kids would understand Python. But I went for it anyway, solving the Python install problem by using trinket.io/python instead of the installed version. I even let the kids all login to that site using the same account so they can save all their work, albeit in one big dogpile.

So how has this exercise gone? Well I began by using the Code Club worksheets. And to be honest they show evidence of the same concerns I had myself. This programming thing assumes a lot of prior knowledge. It’s hard and as a result the worksheets are a little too noddy. The kids quickly get bored of drawing a dog with ACSII characters because it’s much less engaging than the Scratch experience.

Given that the first couple of worksheets were so noddy I decided to start going through the worksheet with them on the big screen at the start of class. I did this for worksheet 2 – calculating your age. And it went better I think. I was able to throw some fun in by letting the kids guess (and be rude!) about my age. And it meant I could talk about stuff like the form of a function call and what a string was and so on. Some kids glazed over and some got it. And I should have been WAY more brief. But it worked.

So with some hesitation I recommend those wanting to start out teaching some Python should do so with some explanation and demonstration. Get the class sat down and do it in front of them. Talk to them and get them coding it with you. Then send them off to do it again solo. At least to begin with this seemed to get them producing working code. And best of all the accompanying teacher – you do have one of those don’t you? – sees what you’ve taught the kids and can help answer the kids’ questions.

Share this:

A friend of mine just directed me to this rather excellent blog post by Katerina Pascoulis on Gadgette.com. It describes some of the lessons the author learned from becoming a coder that were unexpected and which flew in the face of what school had taught her. I think these lessons are just the sort of thing that we should be telling the kids in Code Club. I already do this with point number 5 – “Creating everything from scratch isn’t a good use of your time”. Although I do it by saying to the kids that there is one rule in Code Club – copying is allowed. In fact it’s encouraged. And then I go on to explain about code re-use and learning from each other. I’ll consider bringing in some of these other points to my Code Club introductions as well. But for now – go and read this. It’s a great post:

Share this:

Show off time really. I’ve had this game in my head for literally years. Since I was a kid in fact when I had a physical real world version of this, only without the coins, which are my addition as a reason to actually go somewhere.

The idea is that the clock moves along the black lines which represent grooves in the tiles. Click tiles to slide them around. Arrange the tiles to make the clock reach the coins. You can keep sliding the tiles while the clock is moving. You can also slide tiles before you set the clock moving so you get a nice start. But once the clock is moving it keeps going.

This game uses a real line following algorithm that uses 2 sensors, one ahead and one slightly to the left. I wanted for a while to try writing a line following algorithm in Scratch. It’s fussy and difficult and mine in this game is far from perfect. Don’t try and do this with the kids at Code Club.

Under the line following is a sliding puzzle. This is much easier and uses Scratch version 2’s cloning code. So each tile is an instance of the main tile, which is hidden, and each takes care of its own movement. So when you click on one it looks around to see which way it can move. If it can move into an adjacent empty space then it does. Simple. Definitely easy enough to do with the kids. Feel free to steal the code. I’m pretty sure this could be used in a variety of other games.

Share this:

Today was my first Code Club for this school year. And I had all these big plans. If you’ve been following the blog you’ll have seen some of my thoughts on how I could make my Code Clubs better. And today I put a bunch of those into practice.

The code puzzles idea went great. I’ll write a separate post about that. But my big plans to have the kids all use Scratch 2 on the MIT website didn’t work so well. We started out by telling them that they had to create users on the scratch site – this wasn’t my original plan. I’d meant to setup users for them so they could just be handed a username and password as they arrived. That didn’t happen. Poor planning on my part.

But the big problem was the internet connection. It just wasn’t up to the job at all. I don’t know exactly why but sometimes the web responded and sometimes it just waited and waited and waited without ever sending data to the browser. And of course the computers are so locked down there’s no way I can get at a command prompt to diagnose the problem. My best guess is that there’s something upstream – probably a proxy server designed to protect the kids – that is overloaded and dropping connections. The school has a slow 1.7 Mb/sec internet connection but it doesn’t look like a straightforward bandwidth crunch. I’ve seen those and they’re annoying but they just go slow. They don’t stop.

So today’s club was a lot of kids struggling to create logins – a trial in its own right since most usernames are long since taken on the Scratch site. And a lot of kids staring at a blank browser waiting for the internet to respond.

Not the triumphant start to Code Club that I’d hoped for.

So I guess the message I’ve learned from this is don’t rely on schools having good internet connections. And this is a message for Code Club because I find a lot of what they produce assumes a great deal from the school’s IT that might seem basic to you and me but in school is not a sure thing. Things like access to Notepad. Or the ability to install Python. Or a functional internet connection.

Share this:

There’s a new Kickstarter project on the scene and it looks rather cool. Best of all it’s about teaching kids programming. It’s called Code Spells and the idea is that you play a wizard and your spells are something you create using code. It’s a wonderfully simple idea that I think could spark a kids imagination. The programming language is block based like blockly or scratch and kids will be able to share their creations. The developers are working, initially, on a single player sandbox version. After that they plan to make it multiplayer. And after that they’ll add creatures, NPCs and life of all kinds.

It looks like it’ll be a long development cycle. The beta isn’t expected to launch until November 2015 – yep, more than a year away. That’s a shame but it does look like a worthy idea and their early demos are very promising. If it takes your fancy then head over to the Code Spells kickstarter page to back the project.

By the way, this might be a good place to mention that I’m a gamer and I’ve backed a few games on Kickstarter. I’ve decided that I don’t like this idea of giving people money to develop the game. I think that once they’ve got your money it removes their incentive to get it finished. So for the most part I don’t back games on Kickstarter any more and I rarely buy early access games on Steam. But for Code Spells I might be tempted to make an exception.