‘Computational thinking – that’s the golden thread running through the computing curriculum’
Children use IT skills in all subjects for research, presentations and editing videos – but it’s vital now to find cross-curricular ways to develop programming too, says Miles Berry…
- by Miles Berry
It was only recently that we thought the future of ICT education would see technology embedded seamlessly throughout all aspects of teaching and learning. That everything a child could possibly need to learn about IT would be taught within the context of other subject areas.
It may be that only a few schools – those with 1:1 devices, robust Wi-Fi, great training and a vision for how technology can transform education – have achieved this, but the principle still stands. When it comes to the new computing curriculum, however, few would argue that the content can be mastered without treating it as a discrete subject, and setting aside some dedicated time.
But that’s not to say computing should be taught in isolation. Just as with ICT, the other subjects can provide motivating, relevant contexts for pupils to apply their computational thinking and programming skills. It’s computational thinking, too, that is the golden thread running through the computing curriculum: looking at problems in a way that a human or a computer can understand in order to help us solve them. It draws together such concepts as logical reasoning, decomposition, patterns, abstraction and algorithms, as well as approaches such as tinkering, making, debugging, persevering and collaborating. The foundations of computational thinking are laid in the EYFS’s characteristics of effective learning, but these concepts and approaches can be applied to any area of the primary curriculum: following or writing instructions makes use of algorithmic thinking; doing corrections in maths is debugging; looking for explanations in science is logical reasoning, and so on.
As pupils become better at computational thinking through computing lessons, they’ll be better able to apply this across the curriculum. I believe, however, that we can go much further than this. With pupils getting better at programming, we’re reaching the point where they can use this to do creative things in other subjects. This isn’t just about using other subjects as a context for learning code, it’s also about coding helping pupils to learn in other subjects.
Computing in Maths
The relationship between maths and programming goes back to Alan Turing and the foundations of computer science. Using basic turtle graphics is a great way to help pupils get a better feel for geometry, especially if they imagine themselves in place of the turtle, and they can quickly learn that exterior angles add up to 360˚. Writing programs in Scratch where sprites move around the screen similarly makes coordinates and negative numbers seem more real and useful. Maths also makes use of algorithms (sequences of steps and sets of rules) all the time – for checking if a number is prime, for finding common factors, or doing arithmetic with fractions. With a few coding skills, pupils could put their knowledge of these to the test by writing programs to implement the rules, trying them out with much bigger numbers than the exercises we set and perhaps even finding faster algorithms for the same problem.
Computing in Music
With Scratch’s built-in music-making tools, recording audio and playing it back is easy, but it’s well worth getting pupils to experiment with creating music by sequencing notes and their duration. There are a range of instruments available, and it’s possible to play multiple notes at the same time, allowing children to experiment with chords and polyphony. Repetition in programming can be linked to music compositions too, and pupils can explore randomly generated music, or music that reacts to input from mouse, keyboard or sensors. Children can also improve their compositions in the same way they would debug their programs. Beyond Scratch, Sonic Pi and EarSketch, there are more-advanced, text-based programming languages such as Ruby and Python that can be directly applied to musical composition.
Upper KS2 pupils should certainly find them accessible, but they go way beyond that level, as you can see with some of the amazing work going on at the moment at the intersection between music and computer science. See, for example, the Sonic Pi code to play the melody from Beethoven’s Ode to Joy below…
Computing in D&T
There’s an expectation in the D&T curriculum that pupils at Key Stage 2 will ‘apply their understanding of computing to program, monitor and control their products’. Platforms such as LEGO WeDo, Crumble [PDF] and the BBC micro:bit make it easier than ever for students to take their first steps into ‘physical computing’ – using buttons, switches and sensors to accept input, writing their own code to process this input and producing output through LEDs, speakers and motors.
While the BBC micro:bit’s initial distribution was to secondary schools, the online editor and emulator is accessible to all at the micro:bit website. But the most exciting work in physical computing, at school and beyond, is happening on the Raspberry Pi, which has a built-in set of general purpose input and output pins, and support for using them from its own version of Scratch. There’s a ‘sense hat’ too, which incorporates a tiny display, joystick and some sensors. A couple of these, with programs written by British schoolchildren, went up to the international space station with Tim Peake as part of the Astro Pi project.
Computing in Art
Turtle graphics in Scratch, Logo or Python needn’t be restricted to maths – there’s ample scope to use this as a medium for pupils’ creative work in art too.
QCA’s old scheme of work for ICT had a lovely unit on crystal flowers, there’s plenty of scope to explore tessellating patterns and inspiration can be found in Islamic art, which provides a rich history of beautiful, geometric designs. There’s also scope for exploring more natural patterns, experimenting with simple code to create recursive fractals for trees, fern leaves, broccoli or coastlines.
Computing in MFL
Scratch has excellent support for working in foreign languages – the familiar English of the programming blocks can be replaced with keywords from many other languages, even Latin. This is great for pupils learning English as an additional language, but it’s also a nice way to build up children’s familiarity with foreign languages.
Scratch is great for producing short scripted animations with on-screen and recorded dialogue or narration; why not have pupils program animations for a language they’re learning, or even a simple chatbot? You can also program Scratch (or Python) to generate semi-random, but grammatically correct sentences, using the computer science idea of a finite state machine. Playing with this gives some insights into the structure of a language, so you could use this for English, or any other language your class is learning.
Classical computing
Play the melody from Beethoven’s Ode to Joy on Sonic Pi with this code…
use_bpm 90 use_synth :pretty_bell
define :sequence1 do play_pattern_timed [:e,:e,:f,:g],[0.5,0.5,0.5,0.5] play_pattern_timed [:g,:f,:e,:d],[0.5,0.5,0.5,0.5] play_pattern_timed [:c,:c,:d,:e],[0.5,0.5,0.5,0.5] end
sequence1 play_pattern_timed [:e,:d,:d],[0.75,0.25,1]
sequence1 play_pattern_timed [:d,:c,:c],[0.75,0.25,1]
play_pattern_timed [:d,:d,:e,:c],[0.5,0.5,0.5,0.5] play_pattern_timed [:d,:e,:f,:e,:c],[0.5,0.25,0.25,0.5,0.5] play_pattern_timed [:d,:e,:f,:e,:d],[0.5,0.25,0.25,0.5,0.5] play_pattern_timed [:c,:d,:g3],[0.5,0.25,1]
sequence1 play_pattern_timed [:d,:c,:c],[0.75,0.25,1]
Miles Berry is principal lecturer and the subject leader for Computing Education at the University of Roehampton; he is also the author of Switched on Computing from Rising Stars. For more information, visit milesberry.net or follow @mberry