How do children learn programming?
We are pleased to share with you more information about our new pilot study with Raspberry Pi. It follows the launch of our Solved! report, and is the second in our series of practical experiments which look at how we can help young people to solve problems together both in and out of the classroom.
Senior Research Manager at Raspberry Pi, Oliver Quinlan (formerly of Nesta) tells us more…
Since 2014, programming has been a statutory part of the English National Curriculum; recent reforms in Scotland are consolidating its place in schools; in Wales, computational thinking is being embedded into subjects across the curriculum.
Countries across the world are deciding that programming and computational thinking should be learned by young people. The question now is how best to teach it, so, at the Raspberry Pi Foundation we’re starting a new project to explore one aspect of how children learn programming.
Across the UK, tens of thousands of primary school children are learning programming in Code Clubs
Using our projects, the children work with volunteers to learn programming, usually in an after-school context. This gives us a huge opportunity to explore how they respond to different teaching approaches.
Some people take the view that actively solving problems is the best way to learn. Students who are being taught coding with this view in mind, start writing programs as soon as possible to test and try out the concepts they are learning about.
Another strategy is to first look at how to read code. For many people this doesn’t seem as compelling, but there is some evidence that it’s important to develop the skill of reading code before writing it.
Then there is hacking - taking apart other people’s code in order to twist it to your own ends. Hacking lets students approach reading code in an active way. Lots of people think this teaching method works well, because in contrast to starting from a blank page, learners can make changes to existing code and see big effects quickly.
These latter approaches are reminiscent of existing models on learning with the help of worked examples, i.e. material created by other people. Starting with research by Sweller and Cooper into maths education, it has been shown in many fields that students who spend time looking at worked examples perform better on subsequent assessments than those who spent their time practicing solving problems themselves.
Whether this holds true for learning programming we don’t know, but these findings appear to parallel work on the importance of reading code, and the tradition of hacking as a way of learning programming.
We’re going to run a trial to see if using worked examples can help children to learn programming concepts in Code Clubs
In the trial, we’re aiming to work with 10 clubs. Five clubs will take a technique in which students are taught a set of concepts and then spend time collaboratively solving problems to apply what they have learned. Students in the other five clubs will be taught the same concepts, but will then spend time working together to explore solutions that have already been created. They will be encouraged to hack the examples they are given to actively investigate how they work.
After this practice, students of both groups will be set a collaborative problem solving task, and we will observe how successfully and elegantly they reach a solution. We will also look at how they collaborate to see whether there are differences in the ways the groups tackle the task. To interpret our observations, we will be using Nesta’s recently published collaborative problem solving framework.
We’re excited to be working on a trial that draws on different research projects into education and applies the findings in the context of learning programming. There’s lots to find out about how children develop these skills, and this is the first of many more questions we want to explore.