Thinking abstractly (2.1.1)
Navigate to resources by choosing units within one of the unit groups shown below.
Delivery guides are designed to represent a body of knowledge about teaching a particular topic and contain:
- Content: a clear outline of the content covered by the delivery guide;
- Thinking Conceptually: expert guidance on the key concepts involved, common difficulties students may have, approaches to teaching that can help students understand these concepts and how this topic links conceptually to other areas of the subject;
- Thinking Contextually: a range of suggested teaching activities using a variety of themes so that different activities can be selected that best suit particular classes, learning styles or teaching approaches.
a) The nature of abstraction.
b) The need for abstraction.
c) The differences between an abstraction and reality.
d) Devise an abstract model for a variety of situations.
Abstraction 1, 2 and 3 links are a selection of websites explaining the need for abstraction.
Abstraction is required to enable complex procedures or events to be modelled. Computer programs cannot account for every single element of an event as this would be extremely complex and time consuming. Consider the causes of earthquakes; there are a variety of reasons and elements that lead to an earthquake. By pulling out the common themes and similarities between each earthquake and plotting these causes a model can be created. As more data becomes available more detail can be added, making the model more accurate.
Consider a simple magic trick: this is a classic example of abstraction, with the abstraction; you are fooled by the magic trick and it works (See 'Abstraction example' link). This is the abstraction; you do not need to know how it works and that is magic!
The solution to the trick is the reality and knowing this would ruin the trick. The abstraction hides the solution.
Think of a simple activity such as brushing your teeth or running, then write down the stages or elements that are involved. With a partner break these stages into smaller subsections. You may need to research what is happening inside the body, muscles, nerves and the brain. Break each stage down further if you can. Compare the abstraction model and the detailed stages you have written down.
Abstraction is initially a difficult concept to understand as there are various layers of abstraction dependent on how much detail you need a user to have access to.
Most students have some form of smartphone or mobile device. This device can perform a vast range of functions and processes that can be easily controlled by the user via simple hand gestures, finger swipes or pressing a button. To open an app you press the icon, to take a photograph you press the camera button, to listen to music you select the track. However, underneath each button press there is a very complex set of instructions and procedures that take place to enable, say, the camera. Abstraction enables us to take these complex processes and hide them from the user. Abstraction removes or hides these details from the view of the user to make the process appear simple. Consider a simple stop sign near a junction. Abstraction means that you see the sign and stop, the desired outcome. The reality of what is happening is very different; you see the sign, your brain recognises the shape and the colour and compares this with the knowledge you already have that identifies it as a stop sign, and you receive a message that you should stop the car. There are many layers of abstraction depending on the level of detail you require. Consider the stop sign again. The light is reflected off the sign which is received as photons onto your eyes. The cones in your eyes respond by interpreting the light and colours. This information is sent via the nerve to the brain. In this example, abstraction enables this superficial detail to be hidden or removed from the user.
A common misconception is that abstraction removes detail. In a way it does but it removes the unnecessary detail from the user’s experience, making it more accessible. In some instances the level of abstraction is reduced, as more detail is added to improve the model. Consider an old computer game where the player can only move up, down, left or right. Current game characters can jump, lean, swing and their individual joints move. In games, physics allows for more realistic modelling of interactions such as water, flight and properties of various materials and natural elements. In these examples more detail is being added to make the experience closer to the reality.
Consider a software company making a ball based sports game, maybe tennis, football, golf or basketball. Each ‘ball’ has a set of individual properties. A golf ball is small and hard and can travel a long distance. A bowling ball is large and heavy and requires more power to get it rolling. However, fundamentally they are both balls and have similar properties.
- Make a list the properties of two balls, maybe include the material they are made from, weight, height, diameter etc, what they do, the impact on the elements, or touch etc.
Each of these balls has many properties.
If you were creating a game with one of these balls you would remove some of the more detailed elements.
- list all the differences between the balls
- list all the similarities, creating a Venn diagram of the various properties (see Venn diagram resource).
When coding a ball in a game we can now model a ball and how it may interact. We now have a set of criteria or properties that every ball has and this can be used as the basis of a model.
1) How is the model of the balls different from the reality of the balls? Give examples.
2) What other factors have been left out of the model that may impact upon how the ball behaves and responds?
3) What are the limitations of using abstraction?
4) Why does abstraction need to be applied to the model of the balls? What would happen if every model of a ball was realistic?
At one level of abstraction a computer uses binary to represent an image. Consider a photo loading up on your computer; the monitor turns pixels on and off and this displays images and graphics on a screen. Behind this is a large number of processes taking place, but abstraction removes this detail. At one layer of abstraction each pixel in the image will be encoded with a binary code which is stored in the computer’s memory.
Load up the Binary worksheet (see resource link) and create a simple image by calculating the binary values and adding them to the appropriate square; this will then shade in a corresponding pixel.
Abstraction in programs involves hiding the real process and complex methods behind a simple user interface.
Consider a simple currency conversion program; list all the stages of converting the currency from, say, pounds to dollars.
You will note that there are several parts to the final program solution; abstraction attempts to hide these from the user to make the conversion of the currency appear a simple and easy process.
1) Which parts or stages could be hidden from the user and why?
2) What could happen if the user saw these other stages?
3) Write the program or pseudo code to change/convert the currency value entered, thinking about which parts are being abstracted and why, and which unnecessary details are being removed from the user’s perspective.
OCR’s resources are provided to support the teaching of OCR specifications, but in no way constitute an endorsed teaching method that is required by the Board and the decision to use them lies with the individual teacher. Whilst every effort is made to ensure the accuracy of the content, OCR cannot be held responsible for any errors or omissions within these resources. We update our resources on a regular basis, so please check the OCR website to ensure you have the most up to date version.
© OCR 2015 - This resource may be freely copied and distributed, as long as the OCR logo and this message remain intact and OCR is acknowledged as the originator of this work.