Can you read the title of this blog post? I’ve abstracted a layer of detail – vowels – to create a simplified representation of the title. It should of course read as “The abstraction process within computational thinking”.
I find abstraction fascinating, complex and at times, difficult. I wouldn’t say I fully understand it but am keen to deepen my knowledge. I know about models such as the TCP/IP stack, where layers of detail build up into a complete system to transport data across the internet. Like many, I’ve also seen the map of the London Underground where irrelevant details such as the distance between tube stations are abstracted from the design.
Somewhere in between these two examples sits the need to introduce this concept to children when teaching Computing. My favourite opener for this is to have the children watch a clip from the Disney Pixar film “Inside Out” where three characters are on a journey and take a shortcut through the room of Abstract Thought. They go through four stages of change from clunky Picasso-like 3D representations, via two dimensional pictures to finally being represented as a single symbol. (More information and pictures of this process are available on the Disney Wiki). I then ask the class to think of an draw a single symbol which sums them up, so that anyone else who looks at that symbol could tell who it represents.
Examples of this have included a football, a smiling mouth, a sun, the four symbols on a Playstation controller, a flower and a question mark. One I particularly liked was a ginger spiral, which represented both the child’s hair and their boundless Tigger-like enthusiasm for life. Once everyone has created a symbol, we have a lot of fun matching the symbol back to the child. I have used this activity with Year 5 and Year 6 classes, which backs up the theory that physiologically and psychologically, it is said that the ability to think in an abstract way only begins at around the age of 10 or 11.
However, the neuroscientific definition of abstract thought then needs to be developed and applied to Computing in order to look at the abstraction process within computational thinking. I find the metaphor of a ladder useful to introduce in Key Stage 2.
At the top of the ladder is the interaction between a human and a computer to perform a task; at the bottom are the electrical and mechanical processes undertaken by a computer to perform the required task. Moving down the ladder, the layers become more about the components of a computer: how code is written, how the code is compiled into assembly language, how the processor fetches and executes the commands. Moving up the ladder, the layers become more about how a person interacts with a computer: the graphical user interface, the operating system, an application. (I fully acknowledge that at bottom of the ladder, the electrical signals sent around the circuitry within a computer are not complex at all, and reduce down to the binary system of 1 and 0 for on and off.)
Let’s take the example of writing a piece of code in Scratch. In this programming environment, some of the complexities of writing code have been abstracted. For example the code is all in blocks, which have various different shapes and can only be fitted together in certain ways. This eliminates the possibility of making syntactical or runtime errors when coding – this detail has been abstracted from this programming environment.
Another example directly from Key Stage 2 is the creation of a database, which last year I taught to Years 3 & 4 in the context of their class topic, the Eyam plague. Children had make a database of plague victims (a lot more cheerfully than it sounds!) and as part of that process they had to decide which details about each person to include in the database, and abstract any unnecessary ones, by thinking about what questions they would like to ask once the database was complete.
The challenge of how to introduce abstraction to children still remains. Some good examples focus on non-computing models such as drawing a cat , creating a storyboard or abstracting words from similar sentences leading to the introduction of the concept of variables. At what age can children successfully be introduced to these activities in the curriculum would be a good focus for research.
As I said at the start, my thinking on this isn’t fully formed, and I had doubts about whether I should even publish this blog post. I decided to, however, in order to open up further debate and enhance my understanding. For further reading on this subject, I highly recommend Up and Down the Ladder of Abstraction by Bret Victor.