Code Club Is Programming Tuition For Primary Schools

Share this:

Programming hasn’t really been taught well in UK schools, and that seems like an oversight, particularly when such a vast segment of getting on in the modern world can actually end up being about making computers do things. Hell, as someone who dabbles in both website publishing and development, I know just how useful programming is, how important that makes programmers as individuals, and how helpless I feel when I can’t tackle a programming problem. These skills make robots work, make the internet a thing, and make our precious games crackle with magic fire. So Code Club, an attempt to get after-school coding clubs into UK primary schools (for the 9-11 age group) is something I – and the rest of RPS – wholeheartedly support. This is the lowdown: “Code Club works by connecting programmers with their local schools and providing them with a set of projects to teach for an hour a week in an after-school club setting.”

I post this because I wish I had learned programming when I was a child. Read my quick chat with organiser Clare Sutcliffe, as well as a video overview of the project, below.

RPS: Why do kids need to learn to code at such a young age?

Sutcliffe: There are some really valuable lessons to be learnt from programming. Children learn how to solve problems and how to break complex projects into smaller more manageable tasks.
It’s also about teaching children that they have the power to change the environment around them by designing the programmes they use for themselves.

RPS: That makes sense. I mean, much of our contemporary environment seems to consist in screens… But why don’t schools already teach programming?

Sutcliffe: Technology moves very quickly so it’s very difficult for governments to keep their curriculum up to date. Even so, the UK government has been particularly slow in responding to the pace of change. Apparently there is new curriculum being planned that include programming but this isn’t due for a year or so.

RPS: What can RPS readers do to get kids learning code?

Sutcliffe: Well they can get as many schools involved with Code Club as possible by telling them about it and pointing them in the direction of the code club website www.codeclub.org.uk If RPS readers would like to volunteer at their local school they can find out more information on the volunteers page of our website.

RPS: What can code-illiterate parents do to help kids learn coding at home?

Sutcliffe: They can introduce them to Scratch. It’s a great place to start learning the basic concepts without having to write any syntax. There are also some other great resources such as Mozilla’s webmaker series including thimble, Khan Academy, Codecademy. These will guide you though coding exercises.

If you are a gaming parent, you should support it too. Hell, they’re looking for volunteers to help out with the clubs in schools around the country. The website with all the details is here.

You know there’s no reason why you can’t self teach yourself up to a basic level. One great thing about coding is that apart from large companies, whose HR departments will filter by degree and demand unrealistic amounts of experience, most coders are self taught. That does mean that you have to be careful to learn about good practice though. Web development (PHP/Ruby/Python/Javascript, not so much HTML and CSS) can be a good entry point though it can be easy to get stuck with lower level stuff. One thing I would really really strongly recommend is start learning a second language as early as possible, don’t get yourself boxed into just one. The longer you leave starting a second language the more work it will seem to be until your level of competence can approach that of your first language. In terms of good practice there are two rules I cant stress highly enough. One, document as you go (comments inside functions/methods, and function/class descriptions), and two, do *not* let anyone persuade you that writing code that’s either terse or /apparently/ efficient is more important than code that is logically arranged and easy for someone else to understand (this is called premature optimisation and is a common trap for beginner and not so beginner programmers)

I’ve self-taught myself C#, HLSL, HTML, CSS, and PHP (we were only taught VB 6.0 in college which was already being phased out) but there’s only so much you can teach yourself before you need guidance.

I’m just angry at my younger self for not knowing that I wanted to do programming specifically and shot for general IT to keep my options open. :P Maybe if i’d been able to try it earlier in life I would have made more solid decisions when choosing college courses.

You probably wont see this but just in case… Really the point I wanted to make is that, cliche alert, it’s never too late to start. Of course the reality of a possible drop of income moving to a junior role may make that practically difficult, but it shouldnt be impossible.

If you are looking for some small, self contained problems for practice, I’d recommend looking at some of the easier problems from Google Code Jam:link to code.google.com
These can be solved in any language. I also second the notion of not limiting yourself to any particular language. Once you are comfortable in any imperative programming language, moving to another will not be a big deal, since many of the concepts will already be familiar.

I was lucky enough to be taught to program at age 9 or so. It has shaped my entire life and most definitely improved it. Not everyone will have that experience, but they should be given the chance.

I believe this about other things, too, such as writing and art. Kids should be introduced to many different skills and encouraged to find one that they really enjoy.

I also agree with using Scratch. The other day, my niece told me what she had been playing with Scratch, and started going into how she knew what was wrong with other kids’ programs, and how she’d fix them. I was so freaking proud.

I’ve been looking into something to introduce my niece to coding and have tried out Scratch, but I also looked at Construct 2 – which is an events based system which is a little more complicated but worth a look. There’s a free version which exports to HTML5 and pricey Personal and Business editions which will apparently be able to export to PC/iOS etc etc apps.

Do you know about any alternatives that do similar things and are better? I’m quite interested in this whole movement, if you can call it that, both to encourage kids to at least experience programming, and to help protect the field against the worrying trend towards closed systems and disconnected consumers.

Without giving too much away, I work in a primary school though as tech support, and with the changes in the ideals of the subject in the UK (from “secretary work” like MS Word to Raspberry Pis and coding) the whole “ICT” subject is in trouble. Most of the teachers who teach the subject are not particularly literate or interested in the subject.

While I think the ICT teacher at my school is very enthusiastic, his interests are much more grounded in music (even though he doesn’t teach that subject). I’ve seen him get the keyboard keys wrong, the basic understanding of gifs wrong, (and he’s a full-time member of the Apple cult), etc

He’s open to the idea of new things, but I’ve yet to find something that he’d actually find easy to understand himself and easy to actually teach.

Teaching resources like actual lesson plans etc are the real things needed to move it forward.

In my current job, I’m pretty lucky. In the case of other schools where I’ve worked, the very idea of a teacher being interested in the subject they teach is almost completely alien (instead of just an extra lump of money to be the subject “co-ordinator”). I feel the real problem with teaching the subject in the poorer/government schools will very much lie with the staff teaching it, at least until a decent curriculum is formed around “computers” as something more than glorified typewriters.

I have yet to see an ICT lesson which deals with concepts like short-cut combos, or why the monitor is not always the PC (or at least why turning the monitor off is not actually turning the PC off). You know, actual useful computer knowledge.

A lot of the “new things” for the subject are viewed as Secondary School (12+) concepts, though I think a lot of that is due to unfamiliarity with the subject or possibilities. Or worse, people flushing the budget on iPads for every child (only to have them “go missing” soon after).

I suspect that it’s difficult to find enough people who are genuinely talented at computing who also want to teach, rather than using their incredibly marketable skills in industry. This is a problem across the sciences too, I gather. Unsure how to fix it, short of paying teachers more, which isn’t going to happen.

I think at primary level the issues are reduced, since anyone who has passed through secondary school has basically had enough understanding to teach the stuff at primary level.

The new ICT is basically a new subject, where as something like science or maths has had years of curriculum tweaking.

If I remember correctly, the government basically proclaimed that what was taught in the new ICT was basically up to the teacher… which is frankly bizarre compared to how tightly controlled (and tested) every other subject is.

For an enthusiastic teacher this is a blessing, giving them free reign to build a lesson around the children’s abilities.

The middle-ground, a teacher who is able to teach but is unfamiliar with the subject is in with the worse group, since there is no “proven” guidance.

The worst teachers, are going to be the worst anyway, but without a real curriculum a student or parent can’t attempt to bypass the ineptitude and go straight to the source (or at least for formalised lesson plans… they can obviously go right down to the root, and find basic untailored lessons on the internet or something).

The old ICT is rated up along side Maths and English, as the subjects all pupils need. (Read, write, calculate basic numbers, and type letters, email, research on wikipedia)

The change puts it in conflict with that view… coding, etc is much closer to Design&Tech/Woodwork/Cooking (not everyone really needs it). Much like learning to walk, and being an Olympic sprinter. Along with those other subjects, it does kind of become a form of “bite-sizing” training. You learn the different ways of how to you can plan, write instructions, and follow them. What you apply those skills to is a bit more abstract.

The real basics of the ICT subject (turning computer on, using a mouse) get taught from 3+ (starting with basic child-friendly paint programs), so most children know how to use Word, or logging in, by the tail-end of primary. Secondary onwards seems to repeat the whole thing, which is mostly what the changes are targeted at (and thus Primary is targeted at getting you ready for Secondary, so coding concepts “might” up at the tail-end).

“In my current job, I’m pretty lucky. In the case of other schools where I’ve worked, the very idea of a teacher being interested in the subject they teach is almost completely alien (instead of just an extra lump of money to be the subject “co-ordinator”). I feel the real problem with teaching the subject in the poorer/government schools will very much lie with the staff teaching it, at least until a decent curriculum is formed around “computers” as something more than glorified typewriters.”

I disagree entirely. If staff were under less pressure to perform in the main three subjects, perhaps they’d have the time, space and sanity to get interested in actual teaching.

“I have yet to see an ICT lesson which deals with concepts like short-cut combos, or why the monitor is not always the PC (or at least why turning the monitor off is not actually turning the PC off). You know, actual useful computer knowledge.

A lot of the “new things” for the subject are viewed as Secondary School (12+) concepts, though I think a lot of that is due to unfamiliarity with the subject or possibilities. Or worse, people flushing the budget on iPads for every child (only to have them “go missing” soon after).”

I teach all those things in my ICT lessons, although I’d agree that most wouldn’t bother. The bottom line is you have to look at VALUE. Schools assign no value to this. If I teach my entire class of Year 4s how to use shortcut keys, know what a monitor is, whatever; this has no value to the school. Nobody cares. If I put in extra effort with my Maths and Literacy that year and get better results, I get pats on the back from management, a chance at improved pay, and frankly I get to keep my job another year.

Oh yeah, and as for the iPad thing – my old school just bought 15-20 laptops and in turn, scrapped an entire suite of desktop PCs. And that school was POOR. I’m talking about, these some of these desktop PCs were running less than 500 MB of RAM. My class computer was running on around 600-700 MB of RAM, can’t remember exactly. I tried to tell them it was a bad idea, but again – management won’t listen.

Probably was easier for kids to learn how to program at the 80’s, since the machines where so simple, a children can understand all of it. A cpu like the 6502 is not hard at all to understand.

Now probably the problem is that theres too much things, and most programmers don’t know what are doing, even professional programmers. Odds are most Java programmers have never looked at a native assembler version of his programs, so literally don’t know what are doing. Theres a lot of editors ( vi or emacs), choosing the tools is dificults. And even if you choose a tool, is much more fun to play videogames, than to try to write some code.

The right mindset about programming is that everything give XP points. Start somewhere, and continue, you will always be learning something, even wen you are doing it wrong, you will be learning something valuable for… well.. .more programming. Programming is like a self-perpetuating thing.

I’d be very surprised if there’s someone on the planet who knows everything about their computer, right from the Java code used to write the applications right down to the layout of the chips. Maybe someone at Intel can make a good stab at it, but even then they’re going to specialise. So not knowing how the Java VM works isn’t such a bad thing, I guess.

It might be harder to learn the instruction set of every component of a machine now and code the most basic interfaces, but when it comes to actually get interesting, worthwhile things done, I’d say it’s much easier to learn to program now, with modern languages, modern tools, modern resources for learning and getting help, etc.

I think it’s a fallacy to suggest that if you write assembly it’s somehow purer than working in a higher level language to be honest. Obviously it’s closer to the metal, well it’s “on” the metal, but most of the concepts are the same even though there are different levels of abstraction. A chip designer could make the same argument about someone writing assembly, “fine you say push this here, but you dont understand how that’s actually done”. The important things are really understanding how to decompose a problem and build a flexible, efficient and maintainable/extensible system to do what you need done.

I do agree that when you’re coding on top of a complex modern OS it’s going to take you longer to understand how all the layers of abstraction your code is sitting on interact down to the lowest levels but I think that with the right teacher that doesn’t have to be a problem. As others have pointed of course there are probably a limited number of teachers that fit the bill, but likewise how many people have ever been able to teach coding in assembly?

Part of the reason schools don’t teach programming is because chances are the teachers don’t know how to. It’s entirely possible to teach yourself programming (hell, I did), although teaching yourself how to program *well* is another matter entirely. It’s not entirely impossible that ICT curriculum could be upgraded from Baby’s First Computer Lessons to something with genuine content with the correct people setting it (although this could have already changed since I was at school, of course).

In any case, computing has changed significantly since I was at school. Now everyone uses a computer, but how they use it is probably very different from hacking through Windows 3.11 or whatever we were doing back then. Sharing stuff online is also much easier than hacking out some abomination in HTML, and as a bonus you can also willingly donate personal information to malevolent corporations.

I started programming with Super Logo when I was maybe… ten? And now I make videogames for a living. If you are introduced to the process of thinking like a machine really early then learning a grown-up programming language in later life will come very naturally. This is a therefore a great initiative!

Oh man. If I’d learned how to code before I learned how to be lazy and crap and emotionally dead, my life would be close to unrecognisable. Best of luck to them. It’s embarassing how behind the times we are.

Funny thing about coding is that some people will pick it up really quick, other may take a while, even more will struggle and astoundingly many can never learn it at all. It’s not the way coding is taught, it’s not that it’s a difficult subject, it’s simply that a large portion of the population will never ever ever be able to code and should stay far far away from anything related to coding.

This fact makes coding lessons undesirable as a standard teaching subject in school. Why teach a subject that only a percent of the pupils will ever be able to understand? That’s a waste of the rest’s time and a waste of the school’s limited resources. It’s okay to teach programming as an extra-curricular activity to interested pupils which usually show greater potential for learning programming but introducing the subject into the standard curriculum is a fool’s venture.

Why teach a subject that only a percent of the pupils will ever be able to understand?

Because you could use the same argument to wipe out pretty much every class in existence. Why try to teach anything when some people might not get it?

It’s certainly not a good argument for never even trying to teach everyone coding. Sure, trying to beat it into them for years if they’re clearly just not cut out for/interested in it would be foolish and cruel, but even a half-arsed attempt to make it mandatory for a while would be a potentially life-changing experience for millions of people. It’s a no-brainer, frankly.

It’s certainly more useful than the hundreds of times I was bollocked for having shitty handwriting; a fact that was never, ever going to change, and even if it magcally did, would have made literally no difference to my life at all.

I am in favor of exposing what coding is to pupils and I think a demonstration by a person with significant experience in programming showing how computers work and how we make the computer do what we want it to do is quite necessary in our schools. What I protested was to force the subject into the standard curriculum.

Nim: I agree, it’d be good for pupils to know how a computer REALLY works, even if it’s just a general idea and a couple of experiments, but to go in depth for that… Maybe as an optional subject or extracurricular offer, not something mandatory.

I have to say that learning programming has more benefits than just the programming itself. It teaches people to recognize cause-effect relationships, interaction between systems, abstraction, design and analytical thinking. Those skills are valuable for anything.

Programming cannot be taught effectively in Primary Schools right now, for two reasons.

1) The people in charge of education do not care about actual education, only about getting ever-higher scores in Maths, English and Science. This is because schools are judged extremely harshly on their performance in these areas. Basically everyone is shit-scared of getting ‘bad’ results in these areas (Note: what used to be ‘ok’ is now ‘bad’).

2) The people doing actual teaching in Primary Schools do not know what programming is, and most are not interested in putting the effort in to learn it. Why? Sometimes it’s because they just don’t like/are confident enough with computers. Often it’s because they are too busy trying to get higher scores in Maths, English and Science.

Hopefully this improves people’s frame of reference somewhat when they talk about ‘why programming isn’t being taught in schools properly’.