All about topic: Computational thinking
The Big Question in Computational thinking
How do we think about problems in a way which makes them solvable for a computer?
Description and resources for Computational thinking
Computational thinking asks us to "think about a problem in a way it could be solved by a computer".
Our big questions (used with gratitude from wikipedia):
- How do we use abstractions and pattern recognition to represent the problem in new and different ways?
- How do we logically organize and analyze data?
- How can we break the problem down into smaller parts?
- How do we approach the problem using programmatic thinking techniques such as iteration, symbolic representation, and logical operations?
- What is the best way to reformulate the problem into a series of ordered steps (algorithmic thinking)?
- How do we identify, analyze, and implement possible solutions with the goal of achieving the most efficient and effective combination of steps and resources?
- How do we generalize this problem-solving process to a wide variety of problems?
Related Computational thinking standards
Identify the procedure appropriate to solving a problem.
Evaluate whether the order in which activities are undertaken will result in the required outcome.
Explain the role of sub-procedures in solving a problem.
Identify when decision-making is required in a specified situation.
Identify the decisions required for the solution to a specified problem.
Identify the condition associated with a given decision in a specified problem.
Explain the relationship between the decisions and conditions of a system.
Deduce logical rules for real-world situations.
Identify the inputs and outputs required in a solution.
Identify pre-planning in a suggested problem and solution.
Explain the need for pre-conditions when executing an algorithm.
Outline the pre- and post-conditions to a specified problem.
Identify exceptions that need to be considered in a specified problem solution.
Identify the parts of a solution that could be implemented concurrently.
Describe how concurrent processing can be used to solve a problem.
Evaluate the decision to use concurrent processing in solving a problem.
Identify examples of abstraction.
Explain why abstraction is required in the derivation of computational solutions for a specified situation.
Construct an abstraction from a specified situation.
Distinguish between a real-world entity and its abstraction.
Describe the characteristics of standard algorithms on linear arrays.
Outline the standard operations of collections.
Discuss an algorithm to solve a specific problem.
Analyse an algorithm presented as a flow chart.
Analyse an algorithm presented as pseudocode.
Construct pseudocode to represent an algorithm.
Suggest suitable algorithms to solve a specific problem.
Deduce the efficiency of an algorithm in the context of its use.
Determine the number of times a step in an algorithm will be performed for given input data.
State the fundamental operations of a computer.
Distinguish between fundamental and compound operations of a computer.
Explain the essential features of a computer language.
Explain the need for higher level languages.
Outline the need for a translation process from a higher level language to machine executable code.
Define the terms: variable, constant, operator, object.
Define the operators =, =?, <, <=, >, >=, mod, div.
Analyse the use of variables, constants and operators in algorithms.
Construct algorithms using loops, branching.
Describe the characteristics and applications of a collection.
Construct algorithms using the access methods of a collection.
Discuss the need for sub-programmes and collections within programmed solutions.
Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections.