Please enable JavaScript.
Coggle requires JavaScript to display documents.
Computational Thinking and Methods - Coggle Diagram
Computational Thinking and Methods
Thinking
Abstract thinking
Removing unnecessary details and including only the relevant details
Identifying what does and doesn't matter when solving the problem
The idea of layering levels of a problem
Deciding what variables and objects will be needed
Allows you to make predictions
It may be difficult to predict markets, users, trends and technical influences
Too many variables may mean the scenario is too complex to model accurately
Thinking ahead
Identifying the preconditions of a system, the inputs, the outputs and reusable components
What you need before you get going, identifying inputs and outputs
Caching: identifying what is required before it is needed
Identifying reusable program components
Caching can speed up a process
Caching can be complicated to implement
Caching requires the correct data to be fetched for the next instruction
Thinking procedurally
Breaking a problem down
Identifying a number of smaller sub-problems
Determine the order of events
May not be entirely possible with an event driven approach rather than procedural approach to programming
Thinking logically
Identifying decision points for branching or iteration
Identify the points at which a decision is needed
Determine the conditions of the decision
Determine the next steps depending on the outcome of the decision
The complexity of an algorithm can be determined
Thinking concurrently
More than one thing happening at the same time
Identifying if parts of the problem can be tackled at the same time
Concurrency speeds up te solution
May be difficult to program
Porblem may not suit concurrency
Methods
Problem recognition
Knowing what the problem is
Identifying the key requirements of a solution
Not all problems can be solved with a computer
Backtracking
Going back to a previously successful match to find another solution
Trying an alternative approach if needed
Good for solving logic problems and providing ariticial intelligence algorithms
Only useful for sequential problems
Data mining
The analysis of a large amount of data to provide new information
Looking for depper meanings, not obvious conclusions in available data
Can spot trends and patterns
Anomaly detection
Heuristics
A best guess to problem solve in order to reduce computation time
Approximating solutions to ensure a balance between time spent on solving the problem and getting to the best possible solution
The best solution may take too long or be too expensive to achieve. Sometimes a solution that may not be the best works out OK
Performance modelling
Carrying out mathematical analysis to assess efficiency
Knowing how well a solution will perform before full implementation. Building models to test scenarios
Simulations predict outcomes
Cost effective, sime saving and safety first approach
Requires accurate data
Statisitcs are used to build the model
Randomisation may be needed to model uncertanity
May be easier to spot trends, patterns and relationships between different items of data
Pipelining
The output of one process is the input to another. Queueing up processes
Some processes must be achieved one after another
Can speed up execution
Decisions and branches can mean the pipleline must be reset
Visualisation
Visualisation is a representation of reality using symbols charts and colour
Using diagrams to represent data for analysis. Modelling scenarios and comparing to visible reality
Data is more easy to read if it is presented in a visual way