Abstract: This paper considers the notion of abstraction and its relevance to the computational thinking agenda, including potential difficulties with its use, and possible solutions. We first discuss a paper by Blackwell, Church and Green (2008), “The Abstract is the Enemy”, in which the authors use four examples of software design projects to outline the potential dangers of abstraction. The example projects all show how unhelpful abstractions can cause problems for users, and the authors argue that these problems result from attempts to mediate the human and technological worlds. Blackwell et al. (2008) then argue that the computational thinking drive may invite people to adopt a particular style of thinking and problem‐solving; one which sees abstraction as ‘a friend’. We argue that abstraction is neither friend nor enemy but simply a tool which can be helpful, or not, depending on the manner and context of its use. We propose that whilst the computational thinking agenda does in fact recognise this, it has not yet offered suggestions as to how people can be taught to use this tool effectively. We consider abstraction in terms of five key skills: considering the context in which the abstraction operates, defining and choosing the right abstraction, working with multiple layers of abstraction simultaneously, considering abstractions critically, and knowing when to use abstraction. Within these five skill groups, we consider fourteen sub‐skills which we see as important to the successful use and teaching of abstraction. As such, they allow us to begin to design a ‘curriculum for abstraction’.
PPIG 2009 - 21st Annual Workshop
Concrete Thoughts on Abstraction