Key debates around teaching coding to primary school children
An overview of the most relevant literature on coding and computational thinking with emphasis on the relevant issues for teachers.
The rationale for this literature review is to take the main areas of debate surrounding the teaching of coding to primary aged children and examine the polemic and the different positions that writers and practitioners are taking on these issues. This is intended to be a literature review useful to practitioners rather than academics. In that vein, as well as published peer referenced journal articles we have decided to make maximum use of blog posts and opinions on social media for our source material as we believe that the most informed debate on kids coding is not actually going on in academic journals!
In fact in a meta-analysis of 27 peer-reviewed papers on the subject of teaching computational thinking to school aged children found only ‘nine peer-reviewed intervention studies were based in K-12 settings.’ highlighting the gap in the research into developing computational thinking in school aged children. ‘Even with these limited studies, most were conducted as after-school activities.’ So even the academics know the scope of their own work is limited. (Semantic Scholar)
The Taccle team have compiled reviews of academic papers and we have also trawled through blogs news-articles and opinion pieces to find some answers to the questions teachers regularly ask us along with a few extras we thought were interesting. Things like;
Why are we teaching coding?
Should we even be teaching children to code in the first place?
How should we be teaching it?
How to best use tangible user interfaces?
Are there gender issues to overcome?
We have also compiled a couple of more academic literature reviews around the areas of
Rather than include references like a traditional literature review we have linked where possible directly to the source so you can read more about the parts you are most interested in. This document works better as an e-book and should be read on screen rather than printed but we will provide a print version, downloadable from the main www.taccle3.eu portal.
So why are we teaching coding anyway?
Are we creating a workforce for the future and trying to address the current skills shortages in the labour market or is it an academic subject geared to intellectual development or simply a necessary life skill?
‘Why is it so vital that we teach our children to code? We are already living in a world dominated by software. Your telephone calls go over software-controlled networks; your television is delivered over the internet; people don’t buy maps anymore, they use the web; we all shop online. The next generation’s world will be even more online and digital. Soon, your house will be controlled with software, some of your medical care will be delivered over the web and your car may even drive itself.’ (The Guardian)
Many people argue that the emphasis should not be on teaching coding at all, code is after all just another language. More importantly we should be teaching how to solve problems, how to use logic, and creativity, those transferable skills are more important than code on its own and can be applied not just to any programming language but to real life contexts.
‘This is not primarily about equipping the next generation to work as software engineers, it is about promoting computational thinking.’ (The Guardian)
Coding is one of a range of tools which can be used to teach computational thinking. There are lots of offline, unplugged, hands-on activities which promote problem solving and logic without ever having to touch a computer.
‘…computational thinking conducts a detailed analysis of problems. This helps not only in coding, but also in being able to analyze and thoroughly understand problems, identify patterns and extrapolate solutions.’ (EdTech Review)
During the course of this project we have already had a few long debates about what is meant by terms such as coding, programming, computing and computer science. The Computer Science Teachers Association and International Society of Technology in Education give this definition for computational thinking;
[A] “problem-solving process” that includes formulating problems in a way that enables us to use a computer and other tools to help solve them; logically organizing and analyzing data; representing data through abstractions such as models and simulations; automating solutions through algorithmic thinking (a series of ordered steps); identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combinations of steps and resources; and generalizing and transferring this problem solving process to a wide variety of problems.
Too young to code?
Should we actually be teaching coding to young children at all?
There is ongoing popular debate about whether or not children should be exposed to computer screens let alone taught to program one. The recommended maximum screen time for children has traditionally been set at 2 hours per day but the American Academy of Pediatrics recently changed their guidelines to favour common sense whilst stressing that offline, unplugged playtime should be prioritised.
There is a general consensus that learning languages is better done when young and since learning coding is just like learning another language, advocates of coding suggest that children can never be too young to code.
“Coding brings young children rich opportunities for language development and the “notion of learning from mistakes,” says Chip Donohue, the dean of distance learning and continuing education at the Erikson Institute in Chicago, a graduate school in child development. “We actually don’t do enough of that with young kids.” The sequencing and patterns involved in programming reinforce skills that have always been taught in the early years, but now also create “habits of mind that are essential for the 21st century,” (SLJ)
There is also the question of the appropriateness for young children of coding platforms. However developers are already producing a growing number of apps and platforms designed specifically for younger children. Back in 2012 MIT was working on a programming environment for toddlers, they described programming in terms of a new literacy’
“If children are exposed to the alphabet from the time they can sit up, why wouldn’t we introduce programming as early as possible?” (Technology Review)
Where do you start? What are progression options? Computational thinking and a load of unplugged stuff then moving onto coding or do you just launch them straight into Scratch!
From a pedagogy point of view, it’s not enough for teachers to just have lesson content and subject knowledge, there also needs to be structure and progression; Where do you start? Do you launch straight into programming a Raspberry Pi or start with offline activities like card sorts?
“Teachers also need to learn appropriate pedagogies for delivering a new subject, particularly in those aspects of computer science that relate to algorithms, programming and the development of computational thinking skills.”
If we agree that the focus for teaching should be on computational thinking then teachers can stop worrying about which language to use first and focus on how best to teach the skills required.
“What’s the best way to teach little ones? Experts suggest that educators avoid the old computer lab model in which students spend a set amount of time each day or week practicing basic coding skills. Preschoolers “don’t need to know how it works,” says Donohue. “Teachers who are doing this well are turning this into a very active, very social opportunity for kids to use language and learn the words they will need.” (SLJ)
Teaching code and computational thinking is not a new thing, programming was taught as far back as 1960 but as computers evolved, the skills taught changed from programming to using programmes. Rather than go back to the days of using Logo in the classroom, modern languages for school children are based on blocks of code which can be dragged and dropped to create a programme. This method of building up a series of instructions works equally well offline with simple card sorts or more sophisticated programming bricks.
‘It is better to use visual programming languages rather than traditional programming languages to facilitate the three dimensions of computational thinking in [school age] contexts because unnecessary syntax is reduced (e.g., the use of semi colon and curly brackets) and the commands are closer to spoken English. Students usually need only to drag and snap the command blocks (see Fig. 1). With these features, such programming tools help reduce the cognitive load on the students and ‘‘allow students to focus on the logic and structures involved in programming rather than worrying about the mechanics of writing programs’’ (Kelleher & Pausch, 2005, p. 131). As such, these features of visual programming languages can potentially allow students to acquire the computational concepts more easily without the need to learn complex programming syntax.’ (Semantic Scholar)
A survey of 357 teachers in England who are members of the Computing at School network asked teachers about the best way to teach coding and computational thinking. “[the results show] that teachers emphasised unplugged, hands-on, contextualised activities and the importance of lots of practice.” Those teachers who were confident in their ability to teach coding were “combining strategies around code exercises, using discussion (collaboration and computational thinking), and working away from the computer.”, “utilising a variety of teaching strategies to support learning, rather than relying on one particular strategy.” and they also reported “the need for students to reflect on what they are learning in computing and be able to articulate it.” [Teachers Perspectives IFIP]
Do children need keyboards?
Use of Tangible User Interfaces – should we keep kids away from keyboards until they have explored interfaces more in keeping with their physical development?
The following list gives some good reasons for using Tangible User Interfaces (TUI) that is something which controls a computer or produces a response and can be held, manipulated or played with. For example a MaKey MaKey, wearable arduino technology, BeeBots, and programming bricks. You can find ideas for using these in the classroom via the taccle3 portal by clicking on Ideas and Resources.
TUI requires little time to learn how to use the interface TUI is a natural interface which requires little cognitive effort to learn, therefore children can concentrate more on the task rather than how to use the computer or software.
TUI offers user an alternative way of interaction and control of the computing environment TUI can offer a variety of interactions, it allows user to solve problems with concrete physical objects and physical action when they fail using more abstract representations and complex syntax, therefore TUI can empower children with the control of the computing environment; they will feel and own the environment and will be actively engaged and not lose their interest easily.
TUI supports Trial-And-Error activity TUI gives continuous presentation of the object of interest. It uses rapid incremental and reversible actions whose impact on the object of interest is immediately visible.
TUI supports more than one user The advantage of using a TUI is that it is no longer restricted to a single user, children can sit down and collaborate with their friends face to face in an entirely natural way. It can provide children with a social experience. (chici.org)
But research in other areas suggests that TUIs can be confusing, in Mathematics some studies show that children struggle to transfer what they have learned to other situations. ‘Some other perspectives on manipulating physical material suggest that TUI can also lead to no or negative learning outcomes.” (computer.org) Which highlights the need to not use the TUI for the sake of it but rather to use it to illustrate a concept or to perform a task.
Engaging Girls and Boys
Are there gender issues? Evidence shows that girls (relative to boys) start disengaging from IT and technology at age 7.
Only 17% of Google’s engineers, 15% of Facebook’s, and 10% of Twitter’s are women. (Ref)
“the gender gap is not at all connected to innate ability; girls are not less likely than boys to be good at these subjects.
In fact, The Engineer reports that in the UK girls outperform boys up to GCSE level (exams taken at age 16). But after this, the further on you go, the fewer women you find pursuing these subjects
For instance, women make up just 12% of engineering students at universities in the UK, and just 4% of those taking engineering apprenticeships.” (Ref)
“A statistical report by WISE (Women in Science and Engineering) shows that girls in the UK only begin losing interest in science as they grow into their teenage years.” Roughly equal numbers of boys and girls study STEM subjects at GCSE with girls marginally outperforming boys, the gap then widens significantly at A-level and again at undergraduate level with fewer girls continuing to study STEM subjects.
There is no evidence to suggest any physiological or cognitive reason for the gender gap.
“The research suggests that perceived or actual differences in cognitive performance between males and females are most likely the result of social and cultural factors. For example, where girls and boys have differed on tests, researchers believe social context plays a significant role. Spelke believes that differences in career choices are due not to differing abilities but to cultural factors, such as subtle but pervasive gender expectations that kick in during high school and college.” (APA)
The differences are best explained by stereotyping and social pressures.
“The decline in STEM interest which begins in adolescence increasingly manifests itself in STEM participation in the last years of high school, when girls can express their own wants. Teenage girls score lower than boys on math SAT tests, take fewer AP tests in calculus, physics, and computer science, and are less likely to select college STEM majors (AAUW, 2010). We propose that these trends are connected to girls’ perception of STEM as masculine and their internalization of feminine norms. Girls are caught in a “double conformity” bind, in which they must opt out of femininity or opt out of STEM” (Ref)
In an attempt to redress the balance there are a growing number of initiatives aimed exclusively at girls, Google’s Made With Code project promotes computer sciences to girls ‘For students today, coding is becoming an essential skill, just like reading, writing, and math. If you have a daughter, niece, or other girl that you know, encouraging her to learn to code can open up countless opportunities for her future. Whether she’s an athlete or an artist, loves animals, or wants to explore medicine, coding can help her pursue her interests now and create greater career options and job security for her future. Long story short? She can make anything with code.’
But these forms of positive discrimination are not without their problems. How do you appeal to girls without invoking traditional female stereotypes? Does pink lego really encourage girls to become engineers or does it reinforce the premise that pink is for girls whilst all of the other types of lego are for boys?
“The environment that we grow up in affects how our brain develops. Professor Rippon explains that any difference in brain circuitry comes through stereotyping. Our brain has an incredible ability to adapt, to learn, to accommodate, and to rewire (known as neuroplasticity), and to fit in to our community we adopt the standards, beliefs, and prejudices of those we want to identify with – such as the role of our associated genders. This can help explain the drop in girls taking STEM subjects during their formative years between GCSEs and A level.” (Ref)
So girls and boys need to see and hear about the women involved in STEM as early as possible.