Computational thinking involves formulating the problem as a computation one and then trying to construct an algorithm. This involves abstraction, which is the process of removing unecessary details. Any computer model has some level of abstraction. For example, the london underground is just the tube stations, without any details of the actual geography. High level languages use a very high level of abstraction. The different generations of programming are:
A famoun example of abstraction is the seven bridges of Konigsberg, which was a problem of how to cross all seven bridges in one walk. To solve this problem, Euler constructed a graph and proved it was impossible by showing that all of the nodes had an odd number of edges. This is how data abstraction works, where details of data are hidden. For example, not declaring data types in JavaScript, or even abstract data structures like queues and stacks.
A computational problem can be represented by a simple diagram, with inputs and outputs. Specifying preconditions is a condiiton that must be met for the function to be carried out, like an integer input. The advantages of this are:
Caching is another aspect of thikning ahead done by the operating system by storing instructions or data that have been used and may need to be used again. For example, web caching which caches the most recent web pages so that they can be accessed again easily.
Procedural abstraction means carrying out a sequence of steps for acheiving some task. A procedural interface is the ability to use a function without the need to know how it works. Problem decomposition is when problems are broken down into sub problems. Top-down design is the teachinque of breaking down a problem into big tasks and so on until each task can be written as a module or subroutine. This is useful as it makes writing the program easier.
Home