2.1 Elements of computational thinking
Understand the nature of and need for abstraction
Describe the differences between an abstraction and reality
Devise an abstract model for a variety of situations
Identify the inputs and outputs for a given situation
Determine the preconditions for devising a solution to a problem
Understand the need for reusable program components
Understand the nature, benefits and drawbacks of caching
Identify the components of a problem
Identify the components of a solution to a problem
Determine the order of the steps needed to solve a problem
Identify sub-procedures necessary to solve a problem
Identify the points where a decision has to be taken
Determine the logical conditions that affect the outcome of a decision
Determine how decisions affect flow through a program
Determine which parts of a program can be tackled at the same time
Determine the benefits and trade offs of concurrent processing
Understand that recognising a problem is the first step in solving it
Categorise different types of problem and solutions
Explore different strategies for problem-solving
Understand the concept and application of the “divide and conquer” approach
Learn about and apply the following to solve problems
Visualisation
Backtracking
Data mining
Heuristics
Performance modelling
Pipelining