Computational Thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlie the computer applications you use such as search, email, and maps.
There are many different techniques today that software engineers use for CT such as: Decomposition: Breaking a task or problem into steps or parts. Pattern Recognition: Make predictions and models to test. Patten Generalization and Abstraction:
Discover the law, or principles that cause these patterns. Algorithm Design: Develop the instructions to solve similar problems and repeat the process.
DECOMPOSITION
Part of being a computer scientist is breaking down a big problem into the smaller problems that make it up. If you can break down a big problem into smaller problems, then you can give them to a computer to solve. For example, if I gave you a cake and asked you to back me another one, you might struggle. But if you watched me making the cake and worked out the ingredients, then you’d stand a much better chance of replicating it. If you can look at a problem and work out the main steps of that problem, then you’ll stand a much better chance of solving it.
PATTERN RECOGNITION
Often breaking down a problem into its components is a little harder than taking apart an algorithm, we are often given a set of raw data and then are asked to find the pattern behind it: 1, 4, 7, 10, 13, 16, 19, 22, 25, …
PATTERN GENERALISATION AND ABSTRACTION
Once we have recognized patterns, we need to put it in its simplest terms so that it can be used whenever we need to use it. For example, if you were studying the patterns of how people speak, we might notice that all proper English sentences have a subject and a predicate
Algorithm Design
Once we have our patterns and abstractions, we can start to write the steps that a computer can use to solve the problem. We do this by creating Algorithms. Algorithms are not computer code, but are independent instructions that could be turned into compute code. We often write these independent instructions as pseudo code. Examples of algorithms could be to describe orbit of the moon, the steps involved in setting up a new online shopping account or the sequences of tasks involved for a robot to build a new car
Limits
Nowadays computers are ubiquitous and some would argue that there are no problems out there that a computer, given enough time, could not solve. But it this true? Is every problem solvable by a machine and can we ever know if this is the case?
Abstraction
Abstraction is a technique for managing complexity of computer systems. It works by establishing a level of complexity on which a person interacts with the system, suppressing the more complex details below the current level. The recommendation that programmers use abstractions whenever suitable in order to avoid duplication (usually of code) is known as the abstraction principle. The requirement that a programming language provide suitable abstractions is also called the abstraction principle..
Comments