This post is a follow on from the one I wrote about how we need to start teaching children to code in their junior years (Year 5 is my stab in the dark). This would address the issue of fewer female coders than male, and the fact that not enough people are equipped with this super awesome skill whether their career ends up being in programming, car manufacture or shoe design. The post received such a wealth of feedback in the comments that I could probably write a blog post every day of the year to explore all of the stuff raised in there – I won’t but I will try to draw out some.
In this post I am going to answer the question: what resources can we use to learn or teach code? This seemed to be the question immediately raised in the comments on the post and on twitter, so I have simply read all of the comments and looked at the products and listed them all here for you to use as a resource. I am pretty sure that commentors will leave further links in the comments on this post.
However, before I continue, John Godfrey, one of the commentors on my last blog post left a link to this video. It’s just over an hour long, by Randy Pausch and I would love it if you could all watch it if you haven’t already, as well as read this list of resources! Bear with it, you will learn some excellent things as you watch, but you will also see the insight and inspiration behind Alice, one of the suggested links included below. (If you don’t have an hour or so free right now, then come back to it, but watch the ten ish minutes from this point in the video) otherwise watch the whole thing here:
Deep breath… here is a list of resources (including Alice)
Scratch got many thumbs up from commentors on the last post and was indeed the basic skill many of the Young Rewired Staters attending this year’s coding challenge. Here is the blurb from Scratch:
Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art — and share your creations on the web.
As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.
A few people mentioned this. It *is* good, but it is also a bit
boring dated. It is described as “the term used to describe a range of programs that in various ways provide the user with the means of controlling the movement of an object on the screen ( often a turtle)“. So yes, it is a great thing but would need some good teacher skills to make it relevant and exciting, I think. Or it could be a very painful and dreary maths lesson.
Logotron has a list of resources etc for teaching and teacher.
After insisting on you watching Randy Pausch’s lecture, how could Alice not feature highly? Alice is a 3d programming environment, designed to “create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience.”
So there is Alice 2.0 and Alice 2.2 as well as Story Telling Alice. The latter was the one mentioned by Randy as being developed by Caitlin Kelleher and is “… designed to motivate a broad spectrum of middle school students (particularly girls) to learn to program computers through creating short 3D animated movies.” <- danaaaa!! You can download Story Telling Alice here, but it is not hugely tested, is only available for windows based machines, has no support – but I certainly plan on playing about with it with Amy (9).
‘Proper’ Alice has full support and documentation and teaching materials and so on.
Android was recommended as an easy way to start mobile programming – “Android is a mobile operating system for mobile devices such as mobile telephones and tablet computers developed by the Open Handset Alliance led by Google.”
Indeed just looking at all of the web resources to help a person get started in Android programming, I can see why it came so highly recommended. So I found this on the Code Project website and it is a great tutorial. This is a great starting point for teenagers/newby adult coders, frustrating for littler ones unless they are already into this. I lost quite a few hours researching these links for Android programming, and where you can go from there. So be warned, Googling ‘Android’ might just mean that you can just sod off and go teach yourself everything you want to know really from a pretty decent standing start. There are bazillions of tutorials out there.
This software was recommended but it costs money. Not that I do not agree with people charging for providing such useful resources, of course, but just a warning. It is software used for “creating your own interactive Flash resources, activities, games, puzzles, quizzes.”
It is a resource really for teachers to use in schools, co-creating with children to use across subjects utilising the whiteboards (as well as websites and learning platforms). Wins an *applause* award from me for making it all relevant! But is very much aimed at younger learners.
Programmable lego *ends*
Other interesting links
Blitz Academy has a whole list of resources for those thinking about getting a job as a games developer (in fact the reading and link list is interesting for anybody even vaguely interested in anything)
Someone mentioned the Bytes Brothers books. Now that was an interesting hour lost! (Again – this post has taken nearly a week just because I keep disappearing down digital allies). So the most useful link I could find for these was here. Here’s the blurb: “Sort of a cross between Encyclopedia Brown and Micro Adventure, each volume in this series contains several short mysteries. The user must read carefully and run very simple BASIC computer programs in order to guess the solutions.”
I wrote another post a while back for the “inquisitive” it is for those reading this who want to try Python or Ruby, or even scraping websites.
I am not equipped with a teaching degree, so I cannot give equivocal advice on what to teach at whatever stage, however here is a great guide from Matthew (@pixelh8):
Year 5 = 9-10 age Computational thinking, logic, cause and effect (try Scratch, Google app inventor or Lego Mindstorms all visual based programming) or even Game Maker.
Year 6 = 10-11 age Should definitely be coding (try Processing very visual very quick feedback and free see http://pixelh8.co.uk/category/programming-in-schools/ for code examples and http://www.wired.com/geekdad/2009/11/teaching-kids-programmers/ )
Year 7 = 11-12 age try XNA, iPhone & Android dev the program doesn’t have to be complex or world changing you just have to show them a way in. Also they love being able to use and create on up to date tech.
Year 8 = 12-13 age some of the best iPhone developers are 13 years old.
Very comprehensive, Emma. This post deserves a great deal of allusion. Thank you and I will delicious this for those times when I get into discussions with younger relatives and friends who have techy ambitions (I know a few!) Cheers.
Wow thank you! This is fantastic. I showed my son (9) Scratch and he was immediately taken by it. Problem is though, he only saw it because I was interested and happened to be chatting with a friend who is a secondary school ICT teacher who mentioned it. Primary school teachers don’t seem to be at all technologically aware and even if they are there is so much emphasis on year 6 SATS for the school league tables that they don’t dare go outside the curriculum. So it’s only likely to be kids with geeky parents who will get to access all of this.
I am determinded to take this beyond geeky kids and parents – seriously
A great article and some interesting comments.
I agree with scienceetc that an immediate problem in schools is the straight-jacket of curriculum and targets along with a further suffocation in the form of lack of relevant skills and knowledge. The current (and next generation) of IT teachers are all from the PlayStation generation having never been exposed to the demands of rigorous computer programming.
Beyond “geeky” is difficult, but I believe by bringing videogames into the classroom, students that develop games and then distribute to friends via AppStore, Facebook, PlayBook, Web, Desktop, Android would be seen as very cool. Students who excel at Art or Music for example are seen as very cool. I’m sure the same will apply to our creative kids that produce fantastic digital work – away from creating Access databases or VBScript for spreadsheets.
I’m not a coder, so this article is a great start for introducing it to my eleven year old. Thanks.
I ve just been reading the O Reilly book “Masterminds of Programming” – poor title IMHO for a very interesting series of interviews with the creators of various languages and learning to code is a common theme – many of them bemoan typical subject matter (maths series and data structures and algorithms) for inspiring examples for learning to code.
Also interesting to hear different emphasis on language features (Larry Wall has long been my favourite here for incorporating human languages features such as pronouns and the structuring of statements for emphasis) that are also interesting meta topics for anyone trying to inspire new coders.
And p195 has Simon Peyton Jones (co creator of Haskell and all round interesting but not well known bloke) talking about a large problem with teaching this stuff in the uk at least in that we teach IT rather than comp sci or programming (hence my cryptic tweets to @hubmum).
In short, I think the book is well worth scanning for a few hours for anyone interested in the issues raised here – a lot of it is about other issues but there are themes buried in there and some very informed opinions
Learn to Program by Chris Pine is a great gentle introduction to Ruby and programming in general.
Why’s (Poignant) Guide to Ruby is… indescribable.
Great article. Whilst reading about Logo (I remember the turtle!) I thought of a simple alternative to that, Big Trak. It is very simplistic in comparison, but for younger children I think it could help, primarily with logical thinking, as well as being a little more engaging. As a seasoned coder, the ability to analyse a problem and break it down to it’s constituent parts is crucial skill, and Big Trak could help develop that.
Pingback: Boot up: spam kingpin mugged, smartphones in Africa, coding kids and more | dailywebday.com
Good post. Shows there’s more resources available than we might realise.
I just spent 4 days (2 2-day courses) training 30 teachers in Ireland how to program in Scratch. My colleague trained another 30. It’s only a drop in the ocean of teachers, but the enthusiasm, interest and ability these novice teacher-programmers showed was inspiring. When I showed them how to program the Kinect controller with Scratch they were full of ideas how to integrate these technologies in the classroom (ideas I would never have thought off, not being a secondary or primary school teacher).
I hope that schools worldwide will eventually see ICT as something more than ECDL and typing and begin to integrate programming into the curriculum. That’s what I’m working towards in Ireland, whether or not it will happen quickly is another matter.
Just a couple of thoughts, still pushed for time. Like we read books to our kids and teach them to count, I think we need to introduce programming concepts too, probably away from machines so playground games, physical stuff we can do at home etc. We probably already do a lot of these things already (like how to make a cup of tea – go to kettle, pick up kettle, take to tap, fill kettle, if kettle full then switch off tap etc… of course you wouldn’t do this as example for toddlers!). I think by introducing this ‘digital literacy’ at this stage, we might chip at the edges of the issues of getting kids involved. We need to read and count as we get older, so we need to be digitally literate too. I think there may still be a problem in how we relate to technology. It still seems to exist separate from other life. Mainstream media still singles it out and that has a big effect. Also, tech is still portrayed as a ‘geek’ thing. If this division continues, we run the risk of excluding so many when really we should see this as an opportunity to be as inclusive as possible. In terms of digital inclusion and the ‘divide’, this might prove the point at which can draw the line and move forward.
When my grandfather was a child the only “programmed” non-living thing in most homes would be clocks and watches – set the time. Dogs and horses were trained, but they were living. When my father was a child the same was largely true, though some radio-grams had pre-set tuning and many homes had their own telephone and direct dialing was introduced. The machines had started to rise!
In my own childhood, TV tuning, VCR programming, digital clocks, video games, washing machines, pocket calculators… programmed machines soon outnumbered people in every home. So I grew up in a world where almost out of necessity everyone, adult or child, was learning to program things. Some folks were better at this than others. For a brief spell some adults managed to bluff intelligence by learning Shakespeare’s plays, despite not being able to program a video recorder.
Thanks for this excellent piece.
One of the most fundamental of the many interconnected problems that dog learning about programming at school is the lack of a decent GCSE. The only board to offer anything is OCR (and afaik it’s still only a pilot) http://www.ocr.org.uk/qualifications/type/gcse_2010/ict_tec/computing/index.html – Word on the street (TES) is that it has set a very high academic bar – that the AS is only marginally more challenging and simultaneously more rewarding in terms of prestige and course content. All the other GCSE ICT courses are beneath consideration – vacuous, dimwitted courses designed to remove any creative joy or intellectual stimulation.
I know it’s very mainstream, but until we have a programming qualification that captures some of the power and excitement of computing, very few schools will be motivated to change their entrenched positions. I’m a school governor and I can tell you first hand that schools ape corporations – they are results driven businesses (or at least they behave as though they are businesses even though currently most state schools are not.) They will not consider any move that might jeopardise their league position and cynically swap around exam boards and qualifications to try to enhance the perception of their performance.
Cynicism aside, amongst the things we need is a great GCSE programming course. Sadly we can’t rely on OCR, AQA or Edexcel to deliver one of their own volition – they are responsible for abject ICT courses and in part collectively responsible for the terrible state of UK education in computing. (Though I guess less culpable than RM) We should organise to pressure the exam boards to develop courses and exams that are fit for the world we’re in. I’m not completely sure how to do this, but clearly there are many people with much of a clue than me who are equally frustrated. Let’s build a campaign.
Hmm I think “coding” per se is only one part of a more wholistic context when it comes to learning.
Over 15 years ago I taught Year 6 kids to write code in early versions of Flash. The best coders were the girls – why? Because we introduced a social context in the mix.
They wanted to write mini-programs for the early years children to play. I would write the sub-routines like timers and other stuff and they would sit down and discuss the design of the games or interactives, flesh it all out on paper and then get down to actually making it.
Something you can do in an afternoon with 2simpleDIY took weeks and weeks (computer club not in mainstream school). They were writing/making/building for an audience.
They also wrote pure HTML and their own web pages this way and what is more they FTP’d the lot up to a remote servers in Chicago because there wasn’t any web space available in this country. Then the lockdown came.
All this time later I don’t really think kids should go near an exam board – there are too many pseudo exams. But there are a whole swathe of teachers up for teaching coding and more at http://computingatschool.org.uk/
– I personally maintain a very bad wiki at :
with stuff I come across that contextualises “coding”.
I’d also like to see an ethical element introduced in to why and how we can control our environment in these ways. This whole debate reminds me of Pirsig’s “Zen and the Art of Motorcycle Maintenance” but now I’m showing my age.
I don’t think we need GCSE’s we need good mentors – people who will come in a show younger people how to hook up Arduino kits, use Raspberry Pi’s, make stuff and explore their curiosity.
Coding is only one very small part of it all…
Just to add Zoe Ross does some great training on Scratch and other stuff
And two immediate hands on coding “in the browser” free sites are:
great fun for anyone of any age…
Just to add that Zoe Ross does some great workshops on Scratch
and two brilliant free “in the browser” fun coding sites are
Lots of great suggestions here about coding and software, but what about hardware? Shouldn’t we also be encouraging kids to understand how hardware and engineering play a part? Lego Mindstorms is a great place to start in early years. It’d be nice to hear about examples of Arduino kits and Makerbot finding a place in the classroom at late primary / secondary schools.
Pingback: The Guardian tech weekly podcast on tech skills and education | Emma Mulqueeny
Pingback: Wish list so far | Eastbourne Can
Pingback: renaissance chambara | Ged Carroll - Links of the day | 在网上找到
Pingback: A list of tool for Data Journalism. Time to act and do! « margaretnym
Pingback: Data Journalism Tool Checklist « Life Visualization
Pingback: How to initiate kids (or anyone) in coding « melanie ann tarr
Pingback: How to initiate kids (or anyone) in coding | Computer Science in Middle and High Schools | Scoop.it
Pingback: Why shouldn’t adults learn to code too? | Social Web Guru Tips
Pingback: Why shouldn’t adults learn to code too? ‹ Cyprus Today
Pingback: Why shouldn’t adults learn to code too? | Web Guru Tips
Pingback: How to initiate kids (or anyone) in coding | SBMS Technology | Scoop.it
all the primary and secondary schools I ask are not even teaching kids to touch type due to restrictions in the curricularly driven timetable so it would be a stretch to see them slot in coding unless in a “club”
Indeed, and this is why we are not trying to solve this through schools
Pingback: Learn Coding Like Learning New Languages | Classroom Aid
Pingback: Estonian schools teach kids to code from 1. grade « Constructing Kids
Pingback: Why would school pupils want to mix data up? | Local Democracy
Pingback: Web Programming Blog