## Confidence to tackle new problems

Students show confidence to attempt solutions to new problems by application of the four-step process. They use the problem-solving process as a mechanism to overcome hard-to-handle or unknown scenarios and can adapt previously learned methods, concepts and tools to new contexts. They are able to overcome sticking points in the process and teach themselves new tools as the need arises.

### Recalling the four-step process

Knowing the names and sequence of the four steps.### Applying the four-step process

Showing knowledge of the purpose of each step and being able to manage the process through to a solution or conclusion.### Managing the process of breaking large problems into small problems

Having the confidence to manage a problem larger than the student thinks they can do or has experience of solving. Being able to recombine all of the smaller problems to form a solution to the large problem.### Applying existing tools in new contexts

Being able to use a tool you have learnt in a context different from where it has been learnt. Having the confidence to adapt the tool to a new purpose.### Knowing how to teach yourself new tools

Knowing where to find guidance on the use of a new tool. Being able to follow instructions or an algorithm.### Interpreting others' work

Reading reports from other sources. Understanding problem solutions that others have proposed. Having confidence to question source.## Instinctive feel for computational thinking

Students are able to use their experience to know when something just “smells” wrong. They are aware of common errors made and have a working mental knowledge of the use of concepts and tools.

### Identify the usefulness of computational thinking for a given real-world problem

When presented with a fuzzy situation, students can identify whether computational thinking effectively applies or not.### Assessing the plausibility of computational thinking being useful

When presented with a fuzzy situation, students can propose ideas of areas of computation that might apply or be clear that computation cannot effectively help.### Identifying fallacies and misuse of computation

Identifying flaws in logic or improper application of concepts.### Having a feel for how reliable a model will be

- Having a gut feel for the model and whether it takes into account all the effects that are fundamental to a useful prediction.
- Understanding that a given problem's time frame, the number of variables involved and the breadth of concepts applicable all affect the complexity and difficulty in building an accurate model.
- Appreciating how uncertainties propagate.

### Estimating a solution of the defined problem

Estimating solutions before beginning the problem-solving process. Anticipating the structure of the solution to expect. Structures include: number of dimensions, periodicity, distribution, topology, piecewise nature, constant/variable, domain and time sensitivity.## Critiquing and verifying

Critiquing is a consideration of what could possibly be wrong with your process or solution. Asking the questions: Where? When? Why? What? Who? It is a constant process of scepticism towards results, from unexpected results to expected results. Verifying is comparing against a hypothesis to confirm an answer and being able to justify the result.

### Quantifying the validity and impact of the assumptions made

For the assumptions stated in DQ, comparing the relative probability of each being invalid and the impact that this would have on the method or solution.### Quantifying the validity and impact of tools and concepts chosen

For the tools and concepts chosen, comparing the relative probability of each being invalid and the impact that this would have on the method or solution.### Listing possible sources of error from computation failures or limitations

Division by zero. Implications of sign changes. Accuracy limitations, etc.### Listing possible sources of error from concepts' limitations

For the concepts used, list the circumstances in which they would not apply or the extent to which they begin to fail at extremes.### Identifying systematic and random errors

Spotting that the actual methods used for a solution are wrong. Identifying reasons for an unexpected output dependent upon certain conditions.### Being able to corroborate your results

Appeal to different methods. Verify that the final model produces the same output as the combined individual components. Test on an independent dataset.### Qualifying reliability of sources

Determine the source of data collection, the source of a model to use, the research behind a particular method. Understand the criteria for assessing whether a source is reliable.### Deciding if the results are sufficient to move to the next step, including whether to abandon

All through the problem-solving cycle, deciding whether the current progress is sufficient to move forwards, repeat the cycle or abandon the process.## Generalising a model/theory/approach

Once a model has been built for a specific purpose, looking further afield for instances where the model may apply or providing sufficient documentation for others to adapt the model for their purpose.

### Identify similarities and differences between different situations for the purposes of abstraction

Identify similar structures, dimensions, flow or patterns between two problems or contexts.### Taking constants from initial model and making them variable parameters

Broadening the application of the model/solution by releasing constraints or varying assumptions made.### Being able to draw wider conclusions about the behaviours of a type of problem

Using experience of a concept or tool to extrapolate or extend its use. Testing what happens at extremes or at key points for the dependent variables.### Implementing a generalised model as a robust program

Providing details and limits of the assumptions made and the variables involved. Providing documentation for reference and thorough testing of the model.## Communicating and collaborating

Communicating and collaborating is a continual process that happens throughout all stages. Students use media fit for the purpose and combine multiple representations effectively for the intended audience to be able to follow the ideas presented.

### Distilling or explaining ideas visually

Constructing or using visual explanations of ideas during the problem-solving cycle. Small scale, informal sketches or diagrams that allow progress to be made. These may be in the form of the structure of the problem, connections or relationships between variables, trends (the shape of data), positional references, dimensionality, showing how the problem changes from one state to the next.### Distilling or explaining ideas verbally

Briefly explaining reasons, describing an approach to a solution or interpreting an output they are given. The ability to form a verbal description of the point they are trying to make.### Distilling or explaining ideas through written description

Similar to CCp but communicating through written text. Small, individual pieces, a few lines to explain an idea.### Using vocabulary, symbols, diagrams, code accurately and appropriately for your audience

At the correct level for technical understanding, to communicate an idea, to advance understanding, to communicate your findings.### Choosing the best form of communication for a given purpose

Combining multiple forms of media as necessary to convey the ideas and solutions.### Structuring and producing a presentation or report

Organising a clear account of the problem, how it was solved and its solution. Written at a level suitable for the audience intended.### Being able to work effectively in a group to solve a problem

Understand how to iterate a problem in a group and give opinions when appropriate.### Deciding which facts support or hinder an argument

Being able to identify those facts that support your case and those that do not. Defending opinions and inferences made in real time; debating.### Understanding and critiquing ideas presented to you

Being able to identify flaws or gaps in an explanation. Being able to ask effective questions to improve your understanding.### Using techniques for questioning, interrogation, cross-examining

Being able to draw out the information that you want.## Defining the question

Students begin the problem-solving process by organising the information needed to solve the problem and identifying suitable smaller tasks that can be solved. They understand assumptions and use them effectively to aid progress on the solution.

DEFINE QUESTIONS: STEP 1 OF THE COMPUTATIONAL THINKING PROCESS

### Filtering the relevant information from available information

Identifying dependencies related to the problem.### Identifying missing information to be found or calculated

Identifying dependencies related to the problem about which there is no information.### Stating precise questions to tackle

Efficiently presenting the problem to be solved, with an accurate definition of the scope and nature of the problem and variables involved.### Identifying, stating and explaining assumptions being made

Clearly states assumptions that have been made and the reasons why. Assumptions are made to avoid complexity in the problem setup or to avoid irrelevant solutions. Care should be taken that assumptions are not made to avoid computational complexity as is often done without a computer. Consideration of the likelihood of an assumption is sometimes necessary as the list of all possible assumptions could be very long.## Abstracting to computable form

Students begin the abstraction phase by taking their precise questions and working out strategies or concepts to explore. They organise their information and identify the relevant concepts and their suitability for the purpose.

ABSTRACT TO COMPUTABLE FORM: STEP 2 OF THE COMPUTATIONAL THINKING PROCESS

### Identifying the purpose of the abstraction

Reduce the amount of information, create linkages, state the reason for it.### Creating diagrams to structure knowledge

Organising the information related to a given problem to make applicable concepts easier to identify. Making connections between concepts or data, organising the flow or dependencies of variables involved in the problem. Links to CCv.### Identifying relevant concepts and their relationship

Listing concepts and filtering down to those which may apply. Making connections amongst the concepts.### Understanding the relative merits of the concepts available

Comparing the choice of concepts for this abstraction.### Being able to present alternative abstractions

Diagrams, symbolic representations (programs, expressions), structure information (tables, lists, matrices).## Concepts

Concepts are what you want to get done (hang a picture, solve an equation, describe an event's probability…). Tools are what you want to use to do it (glue, nail, screw, graph, formula, normal distribution…). Most concepts begin life with one tool; you invent the concept for a given problem and a tool to fix that. Though retrospectively, people might collect a number of tools and create an umbrella concept to cover them.

ABSTRACT TO COMPUTABLE FORM: STEP 2 OF THE COMPUTATIONAL THINKING PROCESS

### Being able to describe the concept

Describing the structure of the concept and giving examples of its application, purpose and limitations.### Recognising whether the concept applies

For the chosen concept in the context of the problem.### Knowing which tools are relevant to the concept

For the chosen concept in the context of the problem, including where there are no tools available for particular cases: the solution of a quintic equation, for example.### Having intuition for the relative merits of the concept

For the chosen concept in the context of the problem compared to other possible concepts that may be of use in this context.## Tools

Tools take the form of functions, methods or processes that enable a conversion from the abstracted form of the defined question into a form that is useful in answering the question. The tool may not necessarily be computer based. The most efficient manifestation of the tool for the purpose should be chosen.

ABSTRACT TO COMPUTABLE FORM: STEP 2 OF THE COMPUTATIONAL THINKING PROCESS

### Having intuition about the tool's behaviour

Knowing how the tool behaves in a wide variety of contexts. Understanding its strengths, weaknesses and competitive advantage under certain circumstances.### Composing appropriate and accurate input for the tool

Organising data into the correct format, changing units, limiting domains, setting accuracies, ordering, filtering, setting the options required.### Applying the tool or demonstrating experience of its application

Knowing how to run or evaluate the tool to produce a result.### Being aware of comparable tools

Related tools to this tool only. Tools that achieve similar aims without being a direct replacement.### Understanding the relative merits of different tools for use in the context

Related tools to this tool only. There is a possible feedback loop: if your tools are not good enough for the job, you may need to jump concept.## Managing computations

The computation phase begins with students choosing the manifestation of the tool(s) to produce a result. This may be a trivial step for one tool with a simple input but could also be organisationally complex for combinations of a number of tools. Once the computation reaches a certain size, the process of performing the computation becomes a significant consideration.

COMPUTE ANSWERS: STEP 3 OF THE COMPUTATIONAL THINKING PROCESS

### Choosing an appropriate technology

Choosing between various forms of technology (hardware/software), physical machine or brain power.### Being able to interpret documentation

- Accessing documentation and using it to inform the use of the tool in the context that is required.
- For code, documentation is the formal information supplied for the use of a defined function. For other types of tools, this also includes video descriptions, informal notes, help systems or websites.

### Assessing the feasibility of getting a useful answer

- A preflight checklist before take-off. A "yes, ok" or "no go" check on the computation.
- Questioning if the errors involved are going to overwhelm the result and a useful solution will not be achieved.
- Questioning whether it is feasible to find the solution within a reasonable time.

### Having intuition about whether the output is appropriate for the context

- Not interpreting, just an instinctive feel if the output is off.
- Checking variable types, dimensions and magnitudes instinctively.

### Combining tools to produce results required

Constructing a computation using a combination of tools or processes to produce a solution. Linking tools together, ensuring that an output of one tool is suitable as the input of another.### Isolating the cause(s) of operational problems

Knowing systematic methods for identifying the issue. Knowing how to remove parts of the process to isolate suspect parts. Checking units, checking logic, checking structure, checking size, etc.### Resolving operational problems

Knowing what to do if the computer takes too long to calculate or cannot handle the size or accuracy needed for the computation.### Optimising both speed of obtaining results and reusability of computation

Deciding between a back-of-the-envelope quick calculation versus full reporting and delivering communicable methods. Weighing up the usefulness of spending time on documentation versus time on progression to a solution.## Interpreting

Students take the output of the computation stage and translate this back to the original real-world problem by relating the output to their precise question. They consider further areas of investigation as a result.

INTERPRET RESULTS: STEP 4 OF THE COMPUTATIONAL THINKING PROCESS