Mathematics and programming: exploring the links
“In my vision, the child programs the computer and, in doing so, both acquires a sense of mastery over a piece of the most modern and powerful technology and establishes an intimate contact with some of the deepest ideas from science, from mathematics, and from the art of intellectual model building.” – Seymour Papert, Mindstorms: Children, Computers, And Powerful Ideas, 1980
We owe much of what we have learned about children learning to program to Seymour Papert (1928–2016), who not only was a great mathematician and computer scientist, but also an inspirational educationalist. He developed the theoretical approach to learning we now know as constructionism, which purports that learning takes place through building artefacts that have meaning and can be shared with others. Papert, together with others, developed the Logo programming language in 1967 to help children develop concepts in both mathematics and in programming. He believed that programming could give children tangible and concrete experiences to support their acquisition of mathematical concepts. Educational programming languages such as Logo were widely used in both primary and secondary education settings during the 1980s and 90s. Thus for many years the links between mathematics and programming have been evident, and we were very fortunate to be able to explore this topic with our research seminar guest speaker, Professor Dame Celia Hoyles of University College London.
Dame Celia Hoyles is a huge celebrity in the world of mathematical education and programming. As well as authoring literally hundreds of academic papers on mathematics education, including on Logo programming, she has received a number of prestigious awards and honours, and has served as the Chief Advisor to the UK government on mathematics in school. For all these reasons, we were delighted to hear her present at a Raspberry Pi Foundation computing education research seminar.
Mathematics is a subject we all need to understand the basics of — it underpins much of our other learning and empowers us in daily life. Yet some mathematical concepts can seem abstract and teachers have struggled over the years to help children to understand them. Since programming includes the design, building, and debugging of artefacts, it is a great approach for make such abstract concepts come to life. It also enables the development of both computational and mathematical thinking, as Celia described in her talk.
Learning mathematics through Scratch programming
Celia and a team* at University College London developed a curriculum initiative called ScratchMaths to teach carefully selected mathematical concepts through programming (funded by the Education Endowment Foundation in 2014–2018). ScratchMaths is for use in upper primary school (age 9–11) over a two-year period.
In the first year, pupils take three computational thinking modules, and in the second year, they move to three more mathematical thinking modules. All the ScratchMaths materials were designed around a pedagogical framework called the 5Es: explore, envisage, explain, exchange, and bridge. This enables teachers to understand the structure and sequencing of the materials as they use them in the classroom:
- Explore: Investigate, try things out yourself, debug in reaction to feedback
- Envisage: Have a goal in mind, predict outcome of program before trying
- Explain: Explain what you have done, articulate reasons behind your approach to others
- Exchange: Collaborate & share, try to see a problem from another’s perspective as well as defend your own approach and compare with others
- bridgE: Make explicit links to the mathematics curriculum
Teachers in the ScratchMaths project participated in professional development (two days per module) to enable them to understand the materials and the pedagogical approach.
At the end of the project, external evaluators measured the childrens’ learning and found a statistically significant increase in computational thinking skills after the first year, but no difference between an intervention group and a control group in the mathematical thinking outcomes in the second year (as measured by the national mathematics tests at that age).
Celia discussed a number of reasons for these findings. She also drew out the positive perspective that children in the trial learned two subjects at the same time without any detriment to their learning of mathematics. Covering two subjects and drawing the links between them without detriment to the core learning is potentially a benefit to schools who need to fit many subjects into their teaching day.
Much more information about the programme and the materials, which are freely available for use, can be found on the ScratchMaths project’s website, and you can also read a research paper describing the project.
As at all our research seminars, participants had many questions for our speaker. Although the project was designed for primary education, where it’s more common to learn subjects together across the curriculum, several questions revolved around the project’s suitability for secondary school. It’s interesting to reflect on how a programme like ScratchMaths might work at secondary level.
Should computing be taught in conjunction or separately?
Teaching programming through mathematics, or vice versa, is established practice in some countries. One example comes from Sweden, where computing and programming is taught across different subject areas, including mathematics: “through teaching pupils should be given opportunities to develop knowledge in using digital tools and programming to explore problems and mathematical concepts, make calculations and to present and interpret data”. In England, conversely, we have a discrete computing curriculum, and an educational system that separates subjects out so that it is often difficult for children to see overlap and contiguity. However, having the focus on computing as a discrete subject gives enormous benefits too, as Celia outlined at the beginning of her talk, and it opens up the potential to give children an in-depth understanding of the whole subject area over their school careers. In an ideal world, perhaps we would teach programming in conjunction with a range of subjects, thus providing the concrete realisation of abstract concepts, while also having discrete computing and computer science in the curriculum.
In our current context of a global pandemic, we are continually seeing the importance of computing applications, for example computer modelling and simulation used in the analysis of data. This talk highlighted the importance of learning computing per se, as well as the mathematics one can learn through integrating these two subjects.
Celia is a member of the National Centre of Computing Education (NCCE) Academic Board, made up of academics and experts who support the teaching and learning elements of the NCCE, and we enjoy our continued work with her in this capacity. Through the NCCE, the Raspberry Pi Foundation is reaching thousands of children and educators with free computing resources, online courses, and advanced-level computer science materials. Our networks of Code Clubs and CoderDojos also give children the space and freedom to experiment and play with programming and digital making in a way that is concordant with a constructionist approach.
Next up in our seminar series
If you missed the seminar, you can find Celia’s presentation slides and a recording of her talk on our research seminars page.
In our next seminar on Tuesday 16 June at 17:00–18:00 BST / 12:00–13:00 EDT / 9:00–10:00 PDT / 18:00–19:00 CEST, we’ll welcome Jane Waite, Teaching Fellow at Queen Mary University of London. Jane will be sharing insights about Semantic Waves and unplugged computing. To join the seminar, simply sign up with your name and email address and we’ll email you the link and instructions. If you attended Celia’s seminar, the link remains the same.
*The ScratchMaths team are :
- Professor Dame Celia Hoyles (Mathematics) & Professor Richard Noss (Mathematics) UCL Knowledge Lab
- Professor Ivan Kalas, (Computing) Comenius University, Bratislava, Slovakia
- Dr Laura Benton (Computing) & Piers Saunders, (Mathematics) UCL Knowledge Lab
- Professor Dave Pratt (Mathematics) UCL Institute of Education
Excellent! Getting back to the roots. Computer programming as a discipline, started in mathmatics. Sort of lends itself to being used to teach math principles. Especially in the areas of procedural concepts and sequencing.
Starting with Mathematics is probably the best place to start, having learned through a 40 year career just where a passion and interest can take you with computing – start early, IMHO and in secondary, make some element of computing part of as many classes as possible, from Design and Tech through to Geography and Art. I’m a STEM Ambassador and we need to show students that technology can be part of a great career in whatever field you choose.
“but no difference between an intervention group and a control group in the mathematical thinking outcomes in the second year (as measured by the national mathematics tests at that age).”
Reading the above section, I dont believe this is a fault of the Scratch Maths program. From my experience, the standardised exams etc do not generally test depth of understanding. It was only when I got to university that I fully grasped the fundamental concepts of things like calculus. Up until then, I was able to just implement the general rules I. E. “multiply by the exponent, and minus one from the exponent”. It was much later that I was shown the proof of the derivative of x^2, which was hugely beneficial in understanding, but wouldn’t have given a massive improvement in say A-level exams.
I think developing the understanding and “feel” for a subject and how it can be used in other areas is very important, but difficult to test in an exam situation
To quote Seymour Papert “acquires a sense of mastery over a piece of the most modern and powerful technology and establishes an intimate contact with some of the deepest ideas from science, from mathematics, and from the art of intellectual model building.” This is of course a piece of sentimental hogwash. A child is (hopefully) taught maths AND computing to assist them get a decent job in adult life so that they can live comfortably in this dog eat dog, capitalist orientated world.
If we’re lucky, some of these children will go on to develop “systems” which are beneficial to the human race as a whole.
Either way, maths and computing should be mandatory, and taught in conjunction with other subjects such as history, art, geography etc., and possibly a second language, so that the child becomes a “rounded” human being.
Can’t believe you guys used the word “educationalist”.
I’m so pleased to see Dame Celia Hoyles involved. When I tutored students of mathematics she was a great inspiration to me. Just want to say, I’ve met plenty of adults/children who love, and are able at, coding in Scratch but are not confident mathematicians. Let’s not confine coding to mathsy people. It’s too important a skill to leave out those who don’t find maths easy. Many of them enjoy varied aspects of coding and they have a lot to contribute (Well, I’ve learnt a lot from them).
2 quotations from the article: “In England… we have… an educational system that separates subjects out so that it is often difficult for children to see overlap and contiguity. ”
“Covering two subjects and drawing the links between them without detriment to the core learning is potentially a benefit to schools who need to fit many subjects into their teaching day.”
I worked in a school in 2003 (as a dogsbody), 21 years after I’d been there as a student. I got the impression that in that time they’d moved a long way from that 1st quotation towards the 2nd, possibly squidging >2 subjects together in classes.
In teaching ‘computer’, I’d hope schools do more than teach how to use Microsoft Office!
In teaching maths, I sometimes wonder if it’s worth learning, say, calculus. Mathematica can do it a lot better than I ever will!