## Raspberry Pi ideas wanted

Every week I teach a group of 9- and 10-year-olds some core programming skills using Scratch.

The children seem to love it and I certainly enjoy it – it’s good fun to see them tackle the problems and find solutions: it really reminds me of the reasons, ongoing C++ debugging slog not withstanding, that I enjoy programming as a pastime.

The school I work with have got some Raspberry Pis and I am wondering about ideas to show off how these can be used. I know there is a version of Scratch that allows access to the GPIO so that would be a good place to start.

What makes a good project? Is a calculator – with the results displayed on LEDs a viable idea – or is there something else people recommend? I think it would probably be best if this was a project two or three children could work on together – as I am not sure that all the other things needed to give each child a working Raspberry Pi – like screens and power supplies – are likely to be available in sufficient numbers.

## Computing for teachers….

 Announcing Code Club Pro Training for Teachers
 As many of you already know, last Friday we launched our newest Code Club initiative: Code Club Pro – Computing for Teachers. That’s right… not only is it Valentine’s day today, it is also our one-week anniversary. See press articles here: Guardian, Telegraph; and check out our new website: www.codeclubpro.org.
 What is it?  In partnership with CAS and with the support of Google, Code Club Pro will deliver CPD training and resources to primary school teachers. We’d like our teachers to feel confident and excited about the new computing curriculum and computing in general.
 Why are we doing it?   As the teachers out there know, the new computing curriculum comes into effect this September. That’s only 6 months away. Eeek! In our experience, many feel they have not had sufficient programming experience or training. The language is totally new and frankly, can be quite off-putting. And that’s on top of changes to the rest of the curriculum. A huge task, by any measure – thank goodness our teachers are up to the challenge! We want to help. It is key that the front-line implementers of the new curriculum and policy – the teachers – should be given the skills and support they need.
 How do we feel?   We are excited. It’s a great move toward children thinking like engineers: solving problems, using logic, analysing processes and creating rather than just consuming technology. These skills can be used to enrich other subjects too, like Maths, Science and English. See tef’s blog post here. It’s quite a big task though! There are approx 200,000 teachers in the UK and we want to help as many as we can. Luckily, Google and CAS have invested in our project, and we have you – our amazing volunteers. With great supporters behind us, we know we can achieve many things.
 Happy one week CCP Anniversary all! Sophie Deen PM, Code Club Pro
 PS: Code Club Pro are looking for an intern. We want someone very smart and are offering heaps of exposure, experience, fun and autonomy, plus the London living wage. Check out the ad here. PPS: If whilst reading this newsletter you felt a creeping sense of déjà vu, it’s probably because you already read my blog post last week…

(NB: I have no financial or other stake in this, I am merely a Code Club volunteer)

## Some more thoughts on @CodeClub

This year’s Code Club teaching is nearly at an end – I cannot do next Friday and the Friday after that is the last of the school year, so it seems like a good time to reflect further on the way it has gone – though I am sure I will have some more thoughts later.

This week was a strange one – as only one of the children attended (the last two weeks were cancelled because of an INSET day and a school residential trip and I think some of the children thought it was already over while others wanted to just get out into the sunshine).

All this term I have thought the children were struggling with the work – HTML seems very different from Scratch (certainly the tagging paradigm feels very different from the children’s perspective) and the resources to put HTML pages up on the web just are not available in the school (one lesson from all this is that primary schools are still shockingly under-resourced for this sort of work – for all the talk of educating a digitally-aware generation nobody seems to have put the deep infrastructure of high bandwidth connections and servers in place).

But the lovely thing was that the child who had turned up plainly had got it and took great pleasure in reversing roles and testing me on whether I knew how to construct a basic web page.

## Computer or maths books for kids – any recommendations?

In a fortnight my Code Club will end with the last Friday of the school year – and I want to leave my small (4) group with a useful present – a book about maths or computing that will engage and stretch them (they are 10/11 and bright but, as far as I can tell not budding Nobel winners – though I could always be wrong!).

What would you recommend?

## How many solutions to check?

I asked the year 6 (10- and 11-year-olds) children I teach through Code Club if they could find the five cell pattern that kept a Game of Life board going indefinitely (ie., could they find the “glider” pattern?).

Their prize if they manage it in the next week is chocolate. Of course they could look it up on the Internet – and I won’t object if they do, because they will still have shown intelligence in piecing together the clues.

But what if they search for solution in some algorithmic way? (Actually one of them already sent me an answer which was quite close to correct but was actually a sort of “Methuselah” pattern which filled the screen with living cells before reaching a stasis after about 115 generations.)

Well the first thing they could do is just plonk down 5 counters at random on the board and see if one of these patterns was the correct one. Let’s say they approach this totally randomly and – on average – it takes a minute to determine if the solution is correct or not.

There are obviously ${400 \choose 5}$ possible solutions (this is the binomial coefficient/expansion – we are picking 5 spots at random from 400 possible spots as the board has a 20 x 20 grid) – this is $\frac{400!}{(400 - 5)!5!}$ which is approximately $10^{13}$ – so using this method would take around the known age of the universe, give an order or two, to find the solution.

So, if we did this by checking cells which were, at most, one cell away from a previous cell? (The work below is my own, I think it’s right!)

Well the first cell could be anywhere, the location does not matter : 1

The second cell could then be in one of eight positions: 1 x 8

The third cell could then be in one of twelve positions: 1 x 8 x 12

The fourth could then be in one of sixteen positions: 1 x 8 x 12 x 16

And the fifth could then be in one of twenty positions: 1 x 8 x 12 x 16 x 20

This would take a mere 30,000 minutes or so to check: a good three weeks or so of continuous work.

## The Art of Scratch, Code Club and the ICT curriculum

Regular readers will know I have something of a small obsession with Conway’s Game of Life – the classic “game for no players” based on cellular automata, and so, naturally enough, when I decided that I really had to write my own Scratch program from, err, scratch to sharpen up my skills for teaching children via Code Club, that is what I chose to write – the (not very sophisticated) results can be seen above.

My first conclusion is that Scratch is a truly awful tool for most programming tasks. I know it is not meant to be a general programming tool, but I quickly discovered that it is hobbled even when it comes to doing those things that one assumes, at first glance, it is set up to do – like drawing on the screen. Scratch actually has very, very limited functionality/expressive power when it comes to drawing graphics – being only able to handle pre-provided sprites (as first class objects) and using a pen which marks out one pixel at a time – thus one cannot (at least easily) find a way to draw anything beyond dots and lines on the screen in response to events.

If you run the above program using the Flash player provided by the Scratch site you will probably see one of the big downsides of that as outlines of the old crosses are left on the screen (the Java player does not have this problem but it is very slow in comparison).

From a teaching point of view I also find Scratch’s message-based system less helpful than an imperative GOSUB like approach: the children I work with, after many weeks, are still struggling with the idea that messages should drive actions (probably we should blame their instructor!) – I know this event-based style is more common in the real world, but I think teaching the idea of problem decomposition via subroutines or functions is probably more important educationally.

Yesterday I went to the first London Hackntalk and gave an impromptu (and so unprepared) and brief talk on my thoughts about teaching children to program – my experience with Code Club makes me rather less starry-eyed about mass programming education. There were a few responses from the audience which suggested I had not really got my point – that we would struggle to fully replace an ICT curriculum based on usage skills with one based on programming – as the audience continually suggested ways to get motivated and engaged kids into programming (rather than make it a mass participation thing), but one point that was made by a member of the audience was very acute – given what our children see computers do in games that cost many millions to develop, how realistic is it to expect all or many of them to put lots of effort into toy programs that chug out the sort of graphics you can see above? I think that is a really difficult issue we have to consider when overhauling the curriculum and I am not sure the enthusiasts of radical change (of which I was and still am one) have thought it through fully.

(I did also encourage them to be Code Club instructors and was a bit disappointed to see that I appeared to be the only one – we urgently need to teach more programming and so these problems of the early days of the overhaul should not obscure the need for change.)

## Code Club first session

At last managed to lead my first “Code Club” session – it had a slightly chaotic start as none of the computers we were using had Scratch installed and nor did we have access to a login that allowed us to install Scratch in the Windows “Programs” directory – but once we worked around that we all had great fun.

From the start it was obvious that Scratch made sense to the kids – they immediately grasped that the endless loop control would set the actions it enclosed to run endlessly. Of course nobody (apart from Visual Basic users?) works with similar simple graphics tools when writing an industrial strength program, but that was not the point: this is about teaching loops, conditionals and branches and so on.

The lost time at the start meant it was all a bit hurried so I do not know how much of the programming the children took in – as opposed to just ensuring that their Scratch scripts matched those in the worksheet. But on the first time out – none of the children had used Scratch before – simply being able to manipulate the programming elements was probably more than enough.

In any case, all of them were hugely enthusiastic when I told them they could install Scratch on any computer they had at home and practise on it there.

Code Club feels like a huge success to me already.

## Code Club volunteer for (free) hire – can you help?

Code Club is a new scheme to encourage children to take up coding – and I am a volunteer.

I contacted the nearest primary school to my place of work to offer my services but no response – so if you know of a primary school in Westminster, Lambeth, Kensington and Chelsea or Wandsworth that might be interested in taking part please let me know. You can email me on gmail at adrianmcmenamin.