Back in 1990 I wrote a piece called 'What's wrong with Logo' in which I argued that we should teach programming (with Logo) in primary schools. However, my argument was not that learning to program was important per se, but that it empowered learners and involved the development of important problem solving strategies:
Why Should Children Learn to Program?
As primary school teachers we are not teaching programming as an end in itself. As Straker says "Although the children will need to be taught some simple programming techniques, the emphasis should not be on learning the techniques, but on the ideas that can be explored through programming as a creative activity." (Straker 1989 p74)
The following are some more quotations which explain why programming (using Logo) is thought to be educationally valuable:
"The point of introducing children to programming is to allow them to feel in control, to give them a way of clarifying their ideas, and to encourage them to order their thoughts in a logical sequence." (Straker 1989 p74)
"Learning to communicate with a computer may change the way other learning takes place" (Papert 1980)
"It enables children to relate the familiar world of movement to its symbolic representation" (ILECAS '86) [This referred to the use of floor turtles]
"It allows children to learn in an active and self-directed way" (Anderson 1986)
"It enables children to use computers confidently" (ILECAS '86)
"children are put in an open ended situation where they are required to solve problems in economical, logical and creative ways" (ILECAS '86)
All these quotes illustrate the point that programming is the most open ended way of using a computer. When programming you are only limited by your imagination and your knowledge of the language you are using.
As well as, or perhaps partially because of, its open ended nature programming involves a great deal of problem solving. I believe that this is one of the most important reasons for using Logo in the classroom. A great deal of what we as primary school teachers are teaching is related to problem solving in one form or other: to quote the National Curriculum Council (N.C.C. 1989 pF4) "Following the publication of the Cockcroft Report, the importance of problem-solving has become widely accepted in schools." Another indicator of the importance of problem solving is the fact that The Design & Technology Document (D.E.S. 1989) is almost entirely dealing with the development of problem solving skills: "the style of delivery it advocates is problem solving in a cross-curricular framework." (ILEA 1989 Introduction).
(Twining 1990 pp.23-24)
Indeed, my argument was that through teaching programming (Logo) you could develop powerful problem solving strategies, which today I would call computational thinking:
I think that Logo could play a significant part in improving children's problem solving techniques because programming in Logo clearly highlights some very important problem solving skills.
Programming involves clearly identifying your problem, then breaking it down into smaller components or sub-goals which will enable you to reach your desired end result.
It is very rare that a program will work first time - so you have to use your mistakes and learn from them (called debugging). You cannot program successfully without doing this.
When you are programming you soon realise that there is nearly always more than one way of solving any problem - it is very rare that two people will write a program in the same way even if it is doing the same job.
When programming you have to be logical and systematic or else you will quickly become confused.
When programming you soon develop some very important problem solving strategies which are relevant to any problem solving situation. Examples of this include the use of heuristics, back tracking (starting from the solution and working backwards), simplification of the problem, etc..
When programming you learn a vocabulary for discussing problem solving and this makes it easier for you both to talk about how to solve a particular problem and also to analyse your problem solving skills.
As Howe et al (1980) say, programming "brings problem formulation and problem solving skills together in a single context." They go on to say "Papert argues that the skills developed to design and debug programs will be generalised and used to design and debug the conceptual operations of tasks." (1980).
(Twining 1990 pp.25-26)
The article goes on to explain why this positive picture of programming helping to develop computational thinking is not being achieved in schools in 1990.
The situation in 2018 seems even worse. Whilst the first sentence of the new National Curriculum for Computing states that "A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world" the programmes of study seems to place less emphasis on the development of problem solving strategies and learning to program seems to be seen as an end in itself.
We need to refocus on programming as a vehicle to develop problem solving strategies that are relevant in many different contexts and, perhaps even more importantly, an approach to learning which recognises the importance of learning from your mistakes and that different people will reach the objective in different ways.
References that I couldn't find any web links to:
Howe, O'Shea & Plane (1980) Teaching mathematics through Logo programming: an evaluation.
ILEA (1989) Primary Design & Technology within the National Curriculum.
ILECAS (1986) RML Logo
3 thoughts on “We should teach computational thinking in schools”
To what extent could the strands of computational thinking be tools for tackling wider life skills / strategies for EBD intervention etc? For example, debugging as learning from mistakes/ resilience, decomposition as problem solving, UI as empathy, etc?
Does this lend itself to intervention with specific groups of children with EBD needs who are perhaps more interested in computing than traditional more ‘feminized’ (for want of a better word) pastoral interventions?
I think teaching computational thinking could be used as a vehicle to develop 'wider life skills' (though I don't feel qualified to comment on EBD intervention - and tend to resist such labelling of people).
Debugging/learning from mistakes/resilience/.. - yes - to which I would add things like 'Growth Mindset', collaboration (who programmes in isolation these days?!), etc..
The key, as with many things in education, is how it is taught.
This article argues that you can use computational thinking across any subject https://www.edsurge.com/news/2019-05-21-computational-thinking-is-critical-thinking-and-it-works-in-any-subject