Text based programming in primary schools?

LogoSmall Basic and Python are all accessible languages for the top end of primary. Good folk like Phil Bagge and Dr Chips have been very successful in teaching Python with primary pupils, and Logo has a long, noble heritage in primary. Personally, I’d be reluctant to do text-based programming with a primary class for a few reasons:

  1. I’m more interested in teaching computational thinking than coding, and ‘graphical’ programming languages seem to do that well – algorithmic ideas translate into code blocks quite directly, for example. Remember that computing in the new curriculum is meant to be more about knowledge and understanding than skills per se.
  2. Syntax – it takes a while to master this for any programming language, even those listed above, and I worry that mastering the syntax gets in the way of the thinking. YMMV, but do have a listen to these pupils comments on programming Raspberry Pis in Python. I suspect that much of a teacher’s time in class would be spent dealing with syntax errors (not always easy to spot), unless they fall back to a worksheet led approach, about which I might have other concerns. On the other hand, great reinforcement for the importance of spelling, punctuation and grammar!
  3. Progression – as they have to teach a text based language in secondary, I’d rather leave it to them so they have something fresh – I’d like to avoid too many pupils reporting ‘we did this when we were in primary school’ experience that happened a lot with the old ICT and was one of Ofsted’s criticisms of secondary ICT back in 2011. I fear we’ll have plenty of that with Scratch, but better to avoid it with (eg) Python too, if we can.
  4. In terms of CPD, we’ve our work cut out equipping teachers with the subject knowledge and confidence to teach programming in Kodu and Scratch, as well as the crucial CS hinterland, without also expecting them to learn a text-based language.

If you are going to introduce primary pupils to text based programming, I think I’d want to do things which wouldn’t be possible in Scratch, Kodu et al: at the risk of being far too ambitious, big data, machine learning and natural language processing all could form the basis of some interesting projects.

It’s also worth bearing in mind that Excel (and other spreadsheets) offers another way in to text based programming, albeit via flat, functional programming. Far from ‘creaking into obsolescence’, I still see Excel as a great tool to develop many aspects of computational thinking, as does Terry Freedman.

I think there are good arguments for extra-curricular programming clubs to move on to text-based programming, particularly if the adult:child ratio is somewhat better than 1:30.

I’d also want to do some HTML (and perhaps CSS) work (coding, not programming) – which would give some introduction to the skills of working with a formal language without simultaneously having to cope with the cognitively more demanding challenges of programming. There’s also some coverage for HTML work on the KS2 programme of study, under both the ‘services such as the world wide web’ and ‘design and create content’ sub-bullets. Oh, and it’s a really, really useful skill.

(Written originally as a forum post for the CAS community, free registration required)