# Computational thinking & problem-solving

This is one of

the most important ideasyou can remember:

DecomposeSeparate into simpler constituents.a problem into smaller parts,modela problem with flowcharts. Learn to thinksequentially

Wing (2006, 2011) defined computational thinking as the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by a computer. ^{[2]}

Computational Thinking (CT) is a process that generalizes a solution to open-ended problems. Open-ended problems encourage full, meaningful answers based on multiple variables, which require using decompositionSeparate into simpler constituents., data representation, generalization, modeling, and algorithms found in Computational Thinking. Computational Thinking requires the decompositionSeparate into simpler constituents. of the entire decision making process, the variables involved, and all possible solutions, ensuring that the right decision is made based on the corresponding parameters and limitations of the problem. The term computational thinking was first used by Seymour Papert in 1980 and again in 1996. Computational thinking can be used to algorithmically solve complicated problems of scale, and is often used to realize large improvements in efficiency^{[3]}

## The big ideas in computational thinking

### Thinking procedurally

### Decisions

### Thinking logically

### Thinking ahead

### Thinking concurrently

### Thinking abstractly

### Connecting computational thinking and program designProduce a plan, simulation or model.

### UseApply knowledge or rules to put theory into practice. of programming languages

## Standards

These standards are used from the IB Computer Science Subject Guide^{[4]}

Computational thinking, problem-solving and programming
| |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. the procedure appropriate to solving a problem. | Computational Thinking |

EvaluateAssess the implications and limitations; make judgments about the ideas, works, solutions or methods in relation to selected criteria. whether the order in which activities are undertaken will result in the required outcome. | Computational Thinking |

ExplainGive a detailed account including reasons or causes. the role of sub-procedures in solving a problem. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. when decision-making is required in a specified situation. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. the decisions required for the solution to a specified problem. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. the condition associated with a given decision in a specified problem. | Computational Thinking |

ExplainGive a detailed account including reasons or causes. the relationship between the decisions and conditions of a system. | Computational Thinking |

DeduceReach a conclusion from the information given. logical rules for real-world situations. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. the inputs and outputs required in a solution. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. pre-planning in a suggested problem and solution. | Computational Thinking |

ExplainGive a detailed account including reasons or causes. the need for pre-conditions when executing an algorithm. | Computational Thinking |

OutlineGive a brief account. the pre- and post-conditions to a specified problem. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. exceptionsanomalous or exceptional conditions requiring special processing – often changing the normal flow of program execution that need to be considered in a specified problem solution. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. the parts of a solution that could be implemented concurrently. | Computational Thinking |

DescribeGive a detailed account or picture of a situation, event, pattern or process. how concurrent processing can be used to solve a problem. | Computational Thinking |

EvaluateAssess the implications and limitations; make judgments about the ideas, works, solutions or methods in relation to selected criteria. the decision to use concurrent processing in solving a problem. | Computational Thinking |

IdentifyProvide an answer from a number of possibilities. Recognize and state briefly a distinguishing fact or feature. examples of abstraction. | Computational Thinking |

ExplainGive a detailed account including reasons or causes. why abstraction is required in the derivation of computational solutions for a specified situation. | Computational Thinking |

ConstructDevelop information in a diagrammatic or logical form. an abstraction from a specified situation. | Computational Thinking |

DistinguishMake clear the differences between two or more concepts or items. between a real-world entity and its abstraction. | Computational Thinking |

DescribeGive a detailed account or picture of a situation, event, pattern or process. the characteristics of standard algorithms on linear arrays. | Computational Thinking |

OutlineGive a brief account. the standard operations of collections. | Computational Thinking |

DiscussOffer a considered and balanced review that includes a range of arguments, factors or hypotheses. Opinions or conclusions should be presented clearly and supported by appropriate evidence. an algorithm to solve a specific problem. | Computational Thinking |

AnalyseBreak down in order to bring out the essential elements or structure. To identify parts and relationships, and to interpret information to reach conclusions. an algorithm presented as a flow chart. | Computational Thinking |

AnalyseBreak down in order to bring out the essential elements or structure. To identify parts and relationships, and to interpret information to reach conclusions. an algorithm presented as pseudocode. | Computational Thinking |

ConstructDevelop information in a diagrammatic or logical form. pseudocode to represent an algorithm. | Computational Thinking |

SuggestPropose a solution, hypothesis or other possible answer. suitable algorithms to solve a specific problem. | Computational Thinking |

DeduceReach a conclusion from the information given. the efficiency of an algorithm in the contextThe circumstances that form the setting for an event, statement, or idea, and in terms of which it can be fully understood and assessed. of its use. | Computational Thinking |

DetermineObtain the only possible answer. the numberA unit of abstract mathematical system subject to the laws of arithmetic. of times a step in an algorithm will be performed for given input data. | Computational Thinking |

StateGive a specific name, value or other brief answer without explanation or calculation.Give a specific name, value or other brief answer without explanation or calculation. the fundamental operations of a computer. | Computational Thinking |

DistinguishMake clear the differences between two or more concepts or items. between fundamental and compound operations of a computer. | Computational Thinking |

ExplainGive a detailed account including reasons or causes. the essential features of a computer language. | Computational Thinking |

ExplainGive a detailed account including reasons or causes. the need for higher level languages. | Computational Thinking |

OutlineGive a brief account. the need for a translation process from a higher level language to machine executable code. | Computational Thinking |

DefineGive the precise meaning of a word, phrase, concept or physical quantity. the terms: variable, constant, operator, object. | Computational Thinking |

DefineGive the precise meaning of a word, phrase, concept or physical quantity. common operators. | Computational Thinking |

AnalyseBreak down in order to bring out the essential elements or structure. To identify parts and relationships, and to interpret information to reach conclusions. the use of variables, constants and operators in algorithms. | Computational Thinking |

ConstructDevelop information in a diagrammatic or logical form. algorithms using loops, branching. | Computational Thinking |

DescribeGive a detailed account or picture of a situation, event, pattern or process. the characteristics and applications of a collection. | Computational Thinking |

ConstructDevelop information in a diagrammatic or logical form. algorithms using the access methods of a collection. | Computational Thinking |

DiscussOffer a considered and balanced review that includes a range of arguments, factors or hypotheses. Opinions or conclusions should be presented clearly and supported by appropriate evidence. the need for sub-programmes and collections within programmed solutions. | Computational Thinking |

ConstructDevelop information in a diagrammatic or logical form. algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections. | Computational Thinking |

## References

- ↑ http://www.flaticon.com/
- ↑ http://pact.sri.com/downloads/Assessment-Design-Patterns-for-Computational%20Thinking-Practices-Secondary-Computer-Science.pdf
- ↑ https://en.wikipedia.org/wiki/Computational_thinking
- ↑ IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.