Abstract and Concrete Approaches to Computing
Abstract and Concrete Frameworks to Support Inclusion in Computing
Outline
Part one - Intro, context and terms
- Introduction & Context
- Inclusion - define and how relevant to abstract / Concrete
- A note on making computing engaging
- Concrete and Abstract terms defined in relation to learning
Part two - Computational Thinking, the Abstract and Concrete
- Concrete and Abstract learning approaches
- The Issue of Transfer
- CT explored - Wing and Resnick - wider - narrower - abstract / concrete
- Coding is not CT - but a good medium
Part Three - Tactics for teaching Computing in the Classroom
- gcse exam context
- tactics for teaching Coding
- expansive framing
- semantic wave - presented and applied as concepts first often - can be either but danger of flatlining - how to avoid that in tinkering projects?
- pair / peer programming
- limitations of concepts first approach as a link to the next section
Conclusion
Introduction
In the UK, computing and computational devices are all around us. Young people interact with them in many ways including, general communication, games, social media and many creative fun apps . Computing as a subject draws on this diverse engagement and computing teachers share their creative approaches to covering the computing curriculum, building fluency in programming and developing wider computer science knowledge. When we can connect computing to young people’s genuine interests then magic happens. This chapter champions the value of hands-on teaching approaches. It does this by highlighting on-going tensions in the world of educational policy and research in an accessible way and by drawing on influential and inspirational projects in the field of creative computing.
The promotion of Computational Thinking has been a key factor in the presentation of the UK’s current computing curriculum. Computational Thinking started to gain wider attention when the academic and computer scientist Jeanette Wing began to promote it as a concept and approach that could be useful beyond the field of computing. Wing’s perspective is that “everyone… can benefit from thinking like a computer scientist” -@wing_computational_2008. Computational Thinking is the ability to express and solve problems in the same kind of way a computer would.
This chapter looks at different definitions of Computational Thinking and their implications for teaching computing in inclusive ways. In particular we took at the concepts of abstract and concrete approaches to computing and how they inform recent advice to engage students. To do this I will be summarising some of the theory and practice of applying inclusive approaches to computing projects.
Recent years have brought a new diversity of software tools and engaging materials of computing projects. While these tools are perhaps the most visible signs of progress in this field, effective pedagogies to support the coding and computing process have also received attention. In the second half of the chapter we will look at some of the learning supports available to educators who want, help their learners jump right into coding, sustain interest and reflect on the progress they have made.
Inclusion and Participation
Later in this chapter I will outline several approaches to support inclusive pedagogy but before doing that it is important to have a quick look at the term inclusion. Inclusion in education is used in many ways but is seen generally as ‘increasing the participation of students in, and reducing their exclusion from, the cultures, curricula and communities of local schools’ [@booth2002index]. More recent educational research in this area has widened from having a chief focus on SEN and disability issues to including barriers of culture and other exclusionary elements of school discourse [@black-hawkins_achievement_2008]. The issue of alienation from the culture of computing in schools can be an issue especially for girls and some ethnic minorities. As such bringing the out of school interests and experiences of pupils into the classroom is vital. More broadly, more recent definitions of inclusive education include a social justice element. To be inclusive schools and teachers must identify barriers to progression and work to help student overcome them.
One emerging principle of inclusive pedagogy is to move away from a view that most students learn well and that others need particular support particular, adapted approaches. Indeed if you include wider understandings of neurodiversity and cultural and language diversity then planning alternative activities or learning pathways for all learners with particular needs could quickly become so time-consuming and complex that it would be unsustainable. Instead, we should design learning experiences so that all learners can choose their own learning tasks (and thus levels of challenge), are supported to reflect via self-assessment and bring their own experience and cultural understandings into their work.
These design choice among others are presented in a framework called Universal Design for Learning which embodies this inclusive approach. How UDL can be applied in a computing context is covered in the final section of this chapter. However, many of the principles of the UDL framework will be ones that experienced teachers have already adopted based on their intuition and experience. One key approach is that of introducing concepts by starting with examples that are physical and familiar and then drawing out the more abstract ideas that can be applied in other areas.
One aspect of inclusion is to engage the interests of learners. In the next section we briefly examine some of the techniques educators are using to make computing engaging to a diverse set of learners.
A Note on Making Computing Engaging
Embracing the challenge of making computing projects broadly accessible and engaging and has something that many individuals and organisations both funded and enthusiast have engaged with. University and industry partner programs have created a diversity of computing materials and computing environments designed to aid novice programmers. Teachers themselves have been a tremendous source in the sharing of knowledge, materials and approaches to respond to the challenge.
A quick search the web for creative computing shows a tremendous diversity of activities and mediums designed to engage the home and hobby interests of young people. Physical examples include fashion and textiles based computing, robotics, colourful lighting displays and programming lego constructions. Beyond the value of working with home interests as a way of increasing participation and inclusion there is also outreach value is in the visual, tangible and touchable nature of the materials. They look and feel like fun and exciting objects to engage with.
Other web-based or software activities include game making, meme creation, hobby website creation or making storytelling adventures. Adapting other narrative forms like books, films, games and social media content increases the ability for learners to bring their own interests into the mix.
However while the range of materials and possible creative projects is exciting and full for promise for computing teachers, it is not always clear how to get best approach these opportunities from an educational point of view.
Computational Thinking, the Abstract and Concrete
Concrete and Abstract learning approaches
When reading about different approaches to teaching computing you are likely to meet the terms concrete and abstract. As these are such foundational terms, and because they are often used without introduction, lets define them quickly. In an everyday sense concrete objects are ones you can get hold of and abstract objects exist only as concepts. A pound coin is concrete but the idea of profit is abstract.
There is another everyday usage which hints that abstract knowledge are harder to get to grips with than more concrete understandings. We might ask for a concrete example if we don’t understand a more abstract definition. It is the use of something in context that makes something concrete. In everyday language to grok something is a concrete understanding. In traditional conceptions of education abstract knowledge is of greater value. If you can understand a concept as it applies in different situations then this ability to transfer it and have a more global understanding is held as a higher form of knowledge.
However there are also dangers of adopting teaching in a abstract way. For example, learners may not make a connection to a real situation and then can only recall rather than apply the knowledge. This is termed inert knowledge. For example in computing terms you may be able to give a definition of what a function is in a coding language but not be able to write one.
There are also dangers associated with learning things in a concrete way as well. If you learned you coding by teaching yourself or just picking it up for other people then you may be able to complete tasks but not be able to explain what you have done to other people, or may really struggle to recognise similar patterns in other computing contexts. This kind of knowledge is sometimes called embodied skills.
Interestingly, one critical voice challenging the idea that abstract approaches were a higher form of knowledge was Seymour Papert whose work on creative computing at MIT created a legacy that includes the work on the Scratch programming tool. Papert and Turkle [-@papert_epistemological_1990] talk about revaluing concrete approaches to computing and coding. While they do not discard the technical value of abstract approaches, they draw on feminist theory to make a convincing case that some of the hard approaches and formal language can be off putting to certain learners and especially girls.
In this light, the process of finding solutions to coding issues for novice coders should be a matter of personal preference. As well as abstract and concrete - they use a top down and bottom up analogy. In a bottom up approach problems are tackled piece by piece, experimentally. Desmond Tutu once said that “there is only one way to eat an elephant: a bite at a time.” Bottom up (concrete) coders take this approach.
To clarify this Papert and Turkle give the example of a young coder Lisa, who is aware of a more formal way to approach the kinds of programming tasks she is undertaking, but maintains that way doesn’t work for her. As she continues her journey as a coder this frequent message that she is doing things the wrong way demotivates her enthusiasm around coding. The more abstract concepts are thinking tools that are only useful to the learner if they match with her experiences. Forcing the learner towards them in this example is counter productive as it invalidates her experience and progress.
The authors outline that the danger of leading with the abstract is to devalue this bottom up approach to coding. This way of coding has also been called a craft approach, getting close to the materials. It is an way of doing things that has been shown to have a lot of value in many professions. It has been behind many scientific break-throughs (LATOUR CITATIONS?). For someone like myself, who taught themselves how to code in this concrete ways, it is really encouraging to know about this perspective.
The debate of the desirability of testing using more formal abstract measures of success has been going on for many years. The IQ test is a good example which has been criticised for being culturally biased in favour of more Western understandings of intelligence which favour formal logical and abstract elements and ignore other measures of emotional, cultural and practical intelligence.
However, while this valuing of concrete approaches is important, it is potentially unhelpful to express concrete and abstract as two paths that never meet. Abstract concepts are useful after all. The danger is when the abstract concepts chosen by educators or included in the curriculum are don’t seem relevant to learners, leading to their disengagement.
Many educational approaches value both abstract and concrete knowledge and experience as parts of an ongoing process which alternates between the two poles to help organise and make connections with wider bodies on knowledge. For example the theory of experiential learning which was make popular by Kolb and socio cultural approaches based on the ideas of Vygotsky. Kolb’s model is expressed as a cycle as kind of learning experience here is circular in nature. When this comes to coding and computing this rings true as your knowledge of a coding concept may deepen a little bit each time you apply it in practice. The socio-cultural school holds that rather than being a separate thinking machine, the mind is dependent on the social and cultural webs of meaning that surrounds it. We think socially.

The Issue of Transfer
The implications of thinking socially are that our mind is motivated and activated by the context of the problems that we meet. While it would be great if we could transfer the knowledge we gain in one area to another or to be able to apply an abstract idea to a more specific problem, researchers from the socio-cultural perspective are very critical of this idea.
This problem of transfer creates a problem for Computing teachers. If they are aiming for good exam results of their students. If students are unlikely to be able to transfer the computing skills they have picked up from undertaking creative projects, then it is logical to teach to the test as this will be the cultural context that they need to perform in. Of course this may have long term detrimental effects, as then students will not be able to transfer the exam knowledge into practical experience after school.
The difference between exam-focused computing and real life coding and computing is …. (find citations / example )
As with many other subjects, teachers are being asked to both teach to the particular requirements of exams and to build more transferrable skills. In this case this process of being pulled in different directions seems particularly noticeable.
Definitions of Computational Thinking
We can use this distinction between concrete and abstract to examine the differences between two popular interpretations of Computational Thinking One is Jeanette Wing’s original take. “The most important and high-level thought process in computational thinking is the abstraction process. Abstraction is used in defining patterns, generalizing from instances, and parameterization” [@wing_computational_nodate]. The essence is abstract away concepts and principles from the context. This approach suits a formal exam approach. Many learning resources designed to support the computing curriculum present this principle as for key pillars; decomposition, pattern recognition, abstraction algorithmic thinking[@bbc_bitesize_introduction_nodate].
Another widely used definition of CT by Brennan and Resnick [-@brennan_new_2012] was developed in response to the question How do we describe what Tim, Shannon, and Renita are learning as they participate as designers of interactive media with Scratch?". They take a situated approach to mapping the potential learning dimensions of working with others creating computing projects. The resulting map they create includes computational concepts, computational practices and computational perspectives. This framework based on observation of learners in action is more concrete and more accessible to teachers and learners as they can more easily recognise their own practice.

Computational Thinking model by Resnick and Brennan - Diagram created by Mick Chesterman
This wider and process driven definition of CT has been used and adapted by many organisations seeking to support the new computing curriculum. As such it may be familiar from websites, posters and other supporting material created by groups like Barefoot computing. A review of teaching Computational Thinking [@lye_review_2014] used this second definition as the basis for their review, which point to the widespread use of Brennan and Resnick’s more applied approach.
Much analysis has been done about the relative merits of different definitions of CT. From my perspective I feel that from an academic perspective Wing’s definition does a good job of describing what is most unique about Computational Thinking compared to other frameworks. The way it looks at the special ways abstraction is done in computer science is convincing. The concept of Computational Thinking as more abstract, transferable knowledge became significant aspect of the 2015 Computing curriculum. It suited the conservatives government’s back to educational basics agenda based, a perceived move away a progressive skills based approach to a knowledge-based curriculum.
This agenda has been championed by education ministers Nick Gibbs and Michael Gove. A good example can be found in a speech by Nick Gibb at a launch of a collection of essays The Question of Knowledge (http://tiny.cc/gibbsknowledge). I suspect most educators would find this oppositional setting of knowledge against skills unconvincing. If we return to Kobl’s experiential cycle, it is through application of knowledge in concrete contexts that skills develop and understandings of knowledge deepen. Ironically in the foreword of the publication in question, references the importance of Young’s concept of powerful knowledge which is knowledge put into practice in a concrete context, and putting the knowledge into practice will involve developing practical skills.
SINGPOSTING - Given this, educational practices and frameworks which support learners and teachers to help reflect on and develop skills are clearly helpful. Also, from the perspective inclusive teaching practice there are many benefits to more concrete approaches. The wider definition of CT here assumes the collaborative coding of a computing project. This chapter will explore some of the benefits in context and highlight other frameworks and approaches that can help teachers deliver in this way.
Coding is not Computational Thinking
We have explored that Computational Thinking is a contested term. While there is a general agreement that computational thinking is not just computer coding, most applied definitions include algorithmic thinking, and thus the more concrete aspects of coding structures.
Coding may not be the same as computational thinking but it is part of the computing curriculum and a useful skill in itself. It is the water in which learners swim when creating engaging computing projects where such wider computing concepts are developed.
However while there is a technical distinction, in practical terms as the process of computing is learned through coding projects, for the purposes of this chapter the terms coding and computing are used quite freely.
There is a tension between the skills required of Real Life coding and the time it takes to learn via real projects and the more abstract knowledge needed to answer more formal exam questions. In GCSE exams include a paper which tests application of coding concepts in a paper based format. Which aims to strike a balance. This would then justify devoting more time to applied coding projects especially if they can be done collaboratively to take advantage of the benefits of social learning.
Part Three - Tactics for teaching Computing in the Classroom
This section gives tips and examples pitched at a typical classrooom computing environment.
In another chapter I examine wider project based approaches which are more challenging to integrate into a classroom environment but which provide particular benefits to the learner.
First of all we look at the impact of GCSE exams and the computing curriculum on how teachers approach the subject.
The context of GCSE exams papers
In a very real sense the contents of GCSE exams determine a lot of what happens in the computing classroom in the preceding years. In practical terms, as abstract concepts are a part of our computing curriculum as educators we need to share tactics to help our learners develop them.
The removal of course work from exams due to widespread sharing of worked examples on line created a real challenge for those setting exams. How to test the practical programming experience and ability of students in a written exam setting. At GCSE level most exam questions test the more applied definitions of Computational Thinking, particularly the process of writing, analysing and revising algorithms in the form of written code examples. Students are required to demonstrate and explain fundamental code building blocks and approaches from first principles. However the end results are a slightly frustrating mix of trying to be applied and authentic, and yet strangely artificial as the coding problems are fragmented and written on paper rather than in a real code environment.
The questions which address CT and programming in the format of small coding challenges have to be broken into small fragments to be able test a particular part of the curriculum. By necessity, the challenges include little in the way of context.
There is little or no potential for students to show design or authentic debugging skills in the fragmented, paper based questions.
This passes another challenge on to teachers, how to prepare students for these more kinds of questions which require coding in a non coding environment. It is a hard challenge as there is a diversity of material to cover which in an exam setting takes both good degree of understanding and memorisation of detail.
In essence teachers face a familiar problem of how much they should “teach to the test”. The phrase has been demonised as it implies a passive learning on the part of the pupils, cramming knowledge. You may say, surely this is just the nature of paper based exams. Yes they are formal and dry but that is a by product of making them fair.
However, teaching to the test and staying in a mostly decontextualised examples has potential negative impacts on inclusion and student engagement. If teachers train students efficiently for the test they will be less likely to engage in authentic projects in which they can follow their own interests.
In the following section we look at some of the practical tactics for teaching some of the more abstract CT concepts in a classroom setting.
12 Principles for Teaching Computing
This section draws on resources provided by NCCE on the website teach computing. They often have a focus on techniques that work well in a classroom settings and help prepare for exam like questions.
To counter act the challenges addressed in the last section the NCCE has produced a series of resources based on research on computing practices to help teachers. As a way of summarising some of the diverse and sometimes seemingly contradictory opportunities and requirements, they have provided a set 12 principles for teaching computing aimed at mainstream teachers.
INCLUDE BETTER SUMMARY OF THESE PRINCIPLES IF NOT INCLUDED IN ANOTHER CHAPTER
What these theories have in common is an attempt to address the tricky issue of understanding complex and abstract concepts. The principles also help us to be aware of to balance the promise of transfer with the difficulties associated with the more abstract nature of the concepts.
Specific techniques
Unplugged activities
Unplugged are activities carried out away from the computer that aim to illustrate computing concepts.
Unplugged activities often use very familiar non-school examples and draw on learners’ understanding of their own concrete experiences. However the danger is that meeting the concepts outside of an authentic context where they are put into practice leads to inert knowledge.
Semantic Waves and Leading with Concepts
Two concepts in the teach computing principles are lead with concepts and Unplug, Unpack and Repack. These principles have been explored with the theory of semantic waves. http://tiny.cc/semantic-waves

The Semantic Wave approach is usually presented as leading with concepts, unpacking them, then giving concrete examples or applying the concepts in a practical example, and then returning to the re-examine the concept from a more abstract perspective once again - hopefully with a richer understanding informed by the concrete experience. The terms semantic density and gravity can be substituted for abstract and concrete. In some ways the concept can be seen as simplification of Kolb’s experiential learning cycle. Instead of cycling through four dimensions - learners oscillate between the two.
This concept of semantic waves can help us map a process of students working to integrate abstract concepts into practice or working knowledge. It can also act as an aid to teachers wanting to plan their lessons in a way that communicates the key abstract curriculum knowledge that students will need for exams, and to allow them to put the concepts into practice to build real coding skills and to make valuable connections to personal experience.
Diagrams or examples explaining semantic waves usually start with the process beginning with the abstract or with high semantic density. This suggest that this is the optimal. However the underlying research does not say that it is important where you start.
Leading with concepts has the advantage of being specific about the target subject matter being taught. As this is process familiar to classroom practice and preparing for testing. However, there are disadvantages as it is out of step with project based approaches as we will explore in a later section of this chapter.
Expansive Framing
Another similar approach to the semantic wave is that of expansive framing. The core idea of this approach is to meet similar abstract concepts in different contexts.
A particular example of this technique has been used to increase the effectiveness of unplugged approach by Lee and Vincent using an context of weaving as well as physical activities before exploring such ideas in a context of coding. The idea be
PRIMM
PRIMM stands for Predict, Run, Investigate, Modify and Make. This learning model has been gained popularity in resources aimed at UK teachers. PRIMM helps learners adopt coding practices and computational concepts by starting them with a concrete code example that they run after predicting what it does. They then dig deeper and make changes to the existing code. PRIMM is a modification of Use Modify Create framework which was developed to represent the learning process of learners engaging with extensive computing projects like game design, designing simulations and robotics projects. I write in more detail about the Use Modify Create framework in another chapter in this collection on game making.
The key modification PRIMM makes is in it’s starting point of students reading and predicting code results. It aligns with the NCCE principle of concepts first. This engagement with the motivation of the code allows teachers to focus on the target computing concept of the lesson. It allows them to highlight key computational thinking process or algorithmic details. Thus PRIMM is well suited to the classroom as the process of leading with prediction narrows the focus of the class, thus allowing a larger set of learners to unpack and repack the same set of concepts in a restricted time scale. It is a process well aligned with some of the more formal problems solving, paper-based questions of the GCSE exams.
For a more detailed summary of the PRIMM approach see this quick read pedagogy article. http://tiny.cc/primmqr
Pair Programming
Peer programming is one aspect of social learning but there are others associated with being part of a wider community of learners. One of the key values of pair programming is to start to develop different roles involved in coding. A summary of these roles and tips on how teachers can help learners to adopt them in present in this Quick Read from NCCE - http://tiny.cc/pairprogramming
The process of modelling and breaking down a process that is often difficult to understand is helpful not only to aid a deeper understanding of the process but also to build the identity of learners as being strong in a particular element of coding.
This process of using building an identity of coding with the help of peers is key to a socio-cultural understanding of how learners pick up coding in a classroom (or other settings) and is explored in the final section.
+++++++ POSSIBLE CASE STUDY - +++++++
Werner et al study (see quick read) -
This research showed the value of pair programming to build confidence and provide a social coding environment that was welcoming to girls without excluding boys.
Universal Design for Learning
In a previous section we looked at the foundations of inclusive pedagogies and UDL as an application of these principles. UDL is useful as a set of principles however there is less research available of application in specific settings.
UDL encourages teachers to create diverse ways to engage pupils, to represent the ideas being communicated and for students to express their own ideas. The key ideas emerged from the arena of designing computer aided instruction have been revised to into a framework that applies to diverse teaching and learning settings. According to the USA Center on Universal Design for Learning, “UDL provides a blueprint for creating instructional goals, methods, materials, and assessments that work for everyone—not a single, one-size-fits-all solution, but rather flexible approaches that can be customized and adjusted for individual needs.”

Universal design for learning is based around the principle that rather than designing separate activities and support for learners with different educational needs in the classroom - often labelled accommodations for disability - it is possible to embrace a set of guidelines that allow learners to choose a learning pathway through a designed learning experience that suits their individual abilities and learning strategies.
These strategies are sometimes presented in a way that highlights the technical elements of accessibility and assistive learning technologies, for example text in different sizes, the presentation of materials in accessible ways online and in the classroom. However, beyond representation, approaches for engagement and expression lend themselves to more radical learning techniques.
In terms of choice of student activity teachers will be familiar with the practice of differentiation. UDL practice is similar but places more power in the hands of learners to choose the path that is most appropriate for them.
Clearly the UDL guidelines to provide options for individual choice and autonomy in these three key areas of representation, expression and engagement can be challenging in a classroom environment. Given the time pressures on most secondary teachers you may be forgiven for feeling resistant to the level of preparation needed. UDL is similar in many ways to project based approaches and in another chapter we look at tactics to resolve some of the practical difficulties of adopting these techniques in schools.
Another challenge is the importance given in UDL to the authenticity and personal relevance and value of learning experiences. We have already explored the classroom tension between starting a class with concepts which prioritises building more abstract knowledge, and leading with concrete activities as a way to maximise student engagement. UDL principles lead with engagement encouraging the teacher to set class goals that are relevant to the learners for them to be supported in the discovery and recording of the underlying concepts.
Thus if we return to the semantic wave representation, this suggests teachers should start on the more concrete (high semantic gravity) and then highlight concepts and patterns as they emerge in authentic situations.
Conclusion
This chapter has uncovered some of the dangers the more formal / abstract computing education approaches and challenges. A magasine article by Resnick cautions against some of the dangers of adopting a too formal approach including; too much memorisation of computational terms rather than application, devaluing hands on coding compared abstract concepts, not enough time devoted to complete projects and finally learners not given enough choice in their creations. His concern is that the potential for computing to build creative and design thinking competencies is being undermined. http://tiny.cc/codingcrossroads
As discussed, there is an ongoing tension for teachers between giving learners the freedom to pursue their own concrete coding goals, and the need to bring their attention back to the learning goals and target knowledge of the curriculum. Realistically, in the current educational climate teachers have to be able to show how classroom work applies to the curriculum and exam goals. This tension can be helped using a technique promoted by NCCE (at teachcomputing.org) - that of using observational techniques in the classroom to assess user progress. Techniques to help teacher observation and assessment of what student are completing are vital if we are be able to keep a track of some of the ways they solve problems as they apply knowledge in the concrete stage of their learning. The NCCE have created this quick read on observation - http://tiny.cc/observingstudents - not working
In an ideal situation teachers are able to introduce concepts and then give student suitable tools, inspiration and to sustain their motivation as they solve real computing tasks. However this sets the bar high for many classrooms. While not all schools can provide this kind of motivation and support within an everyday computing classroom environment, many of them find ways of bringing the value project and design approaches to their students. I explore some of these tactics and associated benefits of design and project approaches in more depth in another chapter of this book.
This chapter has explored the alignment of between inclusive approaches and concrete ways of approaching computing education. It has looked at the challenges and dangers of leading with abstract ideas. We can see the characteristics of UDL and the challenges that the principles pose for teachers looking to inclusive practice. We have also covered some of the well established and newly emerging pedagogical approaches to resolve some of these contradictions.
To address wider challenges of implementing PBL approaches we look at what is available to help teachers balancing the requirements of the curriculum and doing hands-on work. To address questions equality I explore how can young people from a wide variety of backgrounds benefit from this approach.