Computing is usually seen as a STEAM (science, technology, engineering, arts, and maths) subject. However, are we missing a trick? Are there parallels between programming and literacy, and could this broaden the appeal of the subject for both learners and teachers?
Waite et al (2018) drew parallels between the design level of a program – where a pupil uses simple language to explain what characters will be needed and what they will do – and the planning of writing in a literacy lesson. Lister, Fidge, and Teague (2007) also investigated the links between writing skills and early programming, but in the context of text-based (in this case Python) languages for older learners. Can this research help us develop our understanding of how the youngest learners are introduced to programming?
As a specialist computing teacher in primary, I have been fortunate to teach learners from K-1 (aged 6–7), right through to the end of K-7 (aged 12–13). This has given me some insight into how children pick up key skills.
Typically, I’ve introduced computing to the youngest learners by looking at concepts such as instructions, and developing vocabulary to help learners access floor robots such as Bee-Bots or Code-a-Pillars. This works really well in a continuous provision environment where children immerse themselves in the language before applying it to a different context, much like you might do with many other subjects. Use of ‘fake bots’ or grids can be a really useful way to introduce directional language. Once the language is secure, symbols can be introduced to represent movements.
This is very similar to literacy, where children are immersed in the language through opportunities to be spoken to, listen to stories, and explore books. Through this, they understand that books convey meaning and that they have an order and a sequence: spot the link?
In a blog post, Sway Grantham has explored ‘Talk for Coding’ as an approach based on Pie Corbett’s ‘Talk for Writing’ learning sequence. She draws on findings by Burke and Kafai (2010), who found that sequence, structure, and clarity of expression are as important in programming as they are in writing.
As children’s literacy skills develop and they become more aware of structure in writing, there are some really interesting parallels we can draw on.
Firstly, nursery rhymes. They’re sequenced (e.g. one, two, three, four, five), and may include some form of repetition (Hickory Dickory Dock or Ten Green Bottles). Knowledge of these patterns can be directly applied to a sequence of instructions, or even used as a basis for programming projects. In Scratch Jr we have a perfect platform for storytelling. One of my favourite learning sequences with Year 1 tied in with their class book at the time, The Three Little Pigs, which they retold through Scratch Jr.
I was careful not to bring in the programming element too quickly, it was much more effective when children were able to plan an element, using a storyboard, which they could then apply within the tool. This is very similar to how most teachers would encourage children to plan a story before writing it. Design in programming is equally important, and this is a way to introduce it by using a known context and drawing form prior learning. There are many parallels with literacy – we plan writing and design algorithms, and storyboards can be used for both.
The research suggests that this approach is not widely used: Waite et al identified that 82% of K-5 (primary) teachers thought that design in programming was at least very useful, whereas only 44% actually used it always or usually in their teaching. Double this amount always, or usually, used planning in writing. This could reflect a lack of confidence in teachers’ subject knowledge, a shortage of materials to support design-led activities, or reflect the curriculum itself. In England, the curriculum for English states that children should ‘plan, evaluate, and improve’ their writing – there is no mention of planning or design in computing.
To develop your computing teaching, it can be really helpful to draw from other subjects, not just literacy. Consider languages. How could learners apply their experience of learning a second spoken language to learning a programming language? In maths, when you teach patterns and sequencing, how can you translate these into the corresponding programming concepts? Can you link debugging to correcting errors in other subjects? The key is to ensure you use all of your experience to make computing as accessible as possible to the broadest range of learners.
Many of the concepts that have been discussed in this article also will be explored in a National Centre for Computing Education online course, which runs from the end of November 2019 and into December as well. It is called ‘Primary programming pedagogy: developing computing teaching’ and depending on when you read this, I hope to see some of you there!