Thinking concurrently (2.1.5)
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 which best suit particular classes, learning styles or teaching approaches.
Computational thinking is an approach to problem-solving combining critical thinking and computer processes. There are five key elements to computational thinking: thinking abstractly, thinking ahead, thinking procedurally, thinking logically and thinking concurrently. Three of these elements are part of the process of getting from a problem to a solution for computational problems.
2.1.3 Thinking procedurally
a) Identify the components of a problem.
b) Identify the components of a solution to a problem.
c) Determine the order of the steps needed to solve a problem.
d) Identify sub-procedures necessary to solve a problem.
Analysing problems and breaking them down into their component parts can simplify everyday problems.
For example building a house is a complex problem but a house is a system with many interconnected parts, one useful exercise is to identify the elements required for a house.
2.1.4 Thinking logically
a) Identify the points in a solution where a decision has to be taken.
b) Determine the logical conditions that affect the outcome of a decision.
c) Determine how decisions affect flow through a program.
(See Learner resource 1.1)
Having identified the sub-components of the problem it is important to identify the points within the solution where decisions have to be made; in the house-building example, how and when to install main services. Where the drains are located, for example, will depend upon the designed layout. The design determines the conditions that affect the outcome of any decision about mains services, walls, doors and windows. These decisions also impact upon the logical processes, that is the order in which things are done.
2.1.5 Thinking concurrently
a) Determine the parts of a problem that can be tackled at the same time.
b) Outline the benefits and trade offs that might result from concurrent processing in a particular situation.
(See Learner resource 1.2)
When solving a problem there are elements than can be tackled concurrently and this is clearly demonstrated in the house-building process. Walls cannot be installed before the foundations are in place, but when installing services it is perfectly reasonable and sensible to install these at the same stage in the process.
- Get students to list the elements that are part of a house, get them to revise this list so that each of these elements is broken down into small systems and repeat this until the list describes the house precisely in terms of small manageable components.
- Now look at the processes involved in building a house, repeat the exercise identifying these processes and sub-processes until the house building process is defined as a series of simple procedures.
- For these processes some must be completed before others, identify the order in which the processes must be completed and allocate a priority for each process. Some processes may be completed at the same stage as others so give these the same priority.
One key way to deliver this content is through practical programming experience and it is this process that will underpin the project work. Identifying a task such as a simple game to be complete in Scratch or other game environment will be useful for practising this approach to problem-solving.
- Identify a game with several levels involving avoiding obstacles and navigating around an arena.
- Identify the elements and processes required to complete the game. (Any suitable game-making environment will suffice for this basic practical exercise, the object is to identify the components and processes and the order in which these should be applied.)
- Explain how the planning process emphasises the procedural nature of the solution.
Other environments suited to developing problem-solving skills, and the procedural nature of problem-solving include:
Cargo-Bot (see resource): This is the first game programmed entirely on the iPad using Codea. It is a free iPad application from TwoLivesLeft and Rui Viana. An iPad app puzzle game where the user teaches the robot how to move crates. The game includes some complex puzzles and requires excellent problem-solving skills.
RoboMind from the Research Kitchen, Delft, the Netherlands (see resource): RoboMind is a programming environment where students program a robot to navigate a maze with various objects and configurations. This will provide an introduction to problem-solving and has the added benefit of introducing programming concepts to those who are starting to learn how to code. The emphasis is on the analysis of the task to be performed.
The process of thinking procedurally requires three stages: decomposition of the problem, pattern recognition and generalisation.
In order to decompose a problem it is vital that the nature of the problem is understood and the first step to solving a problem involves asking questions. In order to ask the right questions the problem should be broken down into its constituent parts. There is no substitute for practical experience analysing a problem and this could be based around a practice programming activity. The most obvious question to start with is ‘what do I know about the problem?’, which leads into the question ‘what do I need to know?’ and ‘what will a solution look like?’
To identify what a solution will look like it is important to look at similar problems and the solution to similar problems to identify suitable features that define a solution to the problem through pattern recognition.
Once the nature of the problem is understood and the components identified it is necessary to identify any special cases, for example to add any necessary validation of the data or deal with unusual circumstances. Finally, it is important to have a set of criteria that can be used to identify a working solution, the success criteria that will help to identify when a solution has been found.
With these issues resolved the next step is to identify the process for getting to a solution, the order in which to tackle the component parts of the solution. Dealing with a large problem as a single entity can be daunting and quite complex, but dealing with the separate components of a problem one at a time is much more manageable. Identify the order in which to solve the sub-problems so that each builds on the previous one to form a solution to the problem.
Generalisation of the problem to use sub-procedures to solve the problem will improve the solution. If a solution to a similar problem exists modify it as necessary to work with the solution. If the same task is repeated with different data throughout the solution then use a suitable procedure to deal with this. Think about a modular approach to the problem re-using procedures where possible.
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.