Is programming really cross curricular?

Much of the previous ICT curriculum was taught in a cross curricular manner. Technology was used to support other curricular subjects, spreadsheets used to speed up the graphing of science results, comics used to reflect on bullying as part of PHSE, blogs used as a way of providing an audience for children’s writing. We classify much of this work as digital literacy now and it is a vital part of computing summed up in the laudable aim of creating pupils that are responsible, competent, confident and creative users of information and communication technology.

Digital literacy is a servant to the rest of the curriculum, the needs of each subject coming before its own.. Teachers ask themselves if the technology adds value, interest or excitement to the focus curriculum area and if it didn’t it is avoided or modified.

Computing leads often ask me for cross curricular programming examples, as if these are a rarity and that programming can be achieved in its own bubble of understanding separate from all other disciplines. Whilst there are programming resources that feature lists of programming exercises divorced from context where pupils learn how to put a number into a variable, add two variables together or iterate through a sequence. I would argue that these are not really programming at all. Real programming grows out of a real problem or context. Real programming is always cross curricular. You can’t write a program to generate poetry unless you really understand how a poem might be decomposed, it’s possible rhyme and structure. You can’t write a program to rotate a shape unless you understand coordinates and how the X and y values are sometimes swapped and inverted.

However the relationship of programming to the specific problem it seeks to solve is a symbiotic one, neither can exist without the other and both are equally as important. To achieve a good result both disciplines need to be engaged with. Computational thinking and doing and the programs that generate from it are fully cross curricular. I have had pupils come straight out of year 6 SATS tests and tell me that they remembered an aspect of Maths because they wrote a program about it. This is not surprising at all because to write a program that generates the perimeter of a shape, express an algebra expression or solve a maths problem will involve full engagement with maths knowledge as well as programming skills and understanding.

After teaching computing science to a group of pupils for two years I interviewed them all about their reflections on the subject at the end of year 6 (10-11 years old). I asked them how much maths they had used. One pupil rattled off a stream of examples, Cartesian coordinates, decimal fractions, greater than less than equal to, area, perimeter etc. All the other pupils said that they hadn’t done any maths at all. They all remembered the projects and were able to describe making programs that calculated perimeter or told you what type of angle you had drawn etc they just didn’t see it as maths. In combining disciplines and using mathematical and computational thinking to create on a digital device they had forged something new, something greater than just the individual parts, more than just programming or just maths.

But that is not the end of the story because when you program you are often designing for a specific audience. This leads you into other important areas of design, user needs and product testing. This blended learning where subject knowledge is combined with computational thinking, programming skills and product design is incredibly powerful. Teachers don’t have to make the case for purpose or importance, as the real world application of combining disciplines into product screams relevance to the student.

So is programming cross curricular? Yes but it probably more accurate to refer to it as multi curricular. To get the most from programming and benefit from the benefits of working in more than one discipline at the same time you need to view it as a full partner not as a subordinate or servant.