Future of education is impossible without the use of communication technologies. It emphasized that it is necessary to start computer programming from the lowest levels of education.
It has been observed that programming in a child development is a logical way of thinking that contributes to creative problem solving. In a way it prepares the child for the future by developing a number of skills such as:
• Successful teamwork;
• Practice thinking;
This helps to successfully overcome the problems of everyday life activities.
It helps to master easily and successfully the contents in other branches of education (other subjects).
Computational thinking is a thinking process that formulates the problem and creates its solution in a way that is understandable to the machine (computer) and that can be performed mechanically.
In other words, it allows us to understand a complex problem:
• the nature of the problem
• to develop possible solutions that can be presented in a way that the computer, human, or both can understand.
Computer thinking is used in algorithmic problem solving. A person who has the ability to think computerically is able to logically organize and analyze data, and is able to break the problem into smaller pieces, to solve it using some programming techniques such as iterations, logic operations and the like.
In addition, knowing how to identify, analyze and apply possible solutions in order to achieve the most efficient problem solving.
There are four main techniques of computer thinking:
• Pattern recognition
Decomposition is the breakdown of a complex problem into smaller problems.
A complex problem is a problem that at first glance we do not understand or do not know how to solve. Therefore, we break it down into smaller problems that are easy to understand and solve.
We solve all minor problems. We integrate their solutions, and through their integration we solve the complex problem.
Pattern recognition is a process that takes place after the decomposition process.
During this process, each smaller problem obtained by breaking down the big problem is analyzed and the similarities and connections between the smaller problems are sought.
Once they are found, questions are asked about how to make the best use of that knowledge.
It is a way of solving new problems based on solutions to previous problems and previous experiences.
Solutions to some specific problems can be adapted and used to solve a whole class of similar problems.
Namely, the solutions to similar problems are grouped in a general solution. So whenever we encounter problems of a similar kind, for their solution, we use this general solution.
In educational practice this method can be used very effectively.
Students are given a set of tasks to solve.They look for similarities between the set tasks, ie common elements between those tasks. After that they find a solution for one task that is adaptable for everyone else.
Abstraction is a process that facilitates thinking about a problem.
Abstraction means focusing only on important information and ignoring unimportant details.
It makes the problem understandable by removing unnecessary details.
The basic motto of abstraction is to remove details that can be neglected to make the problem easier, but at the same time nothing of what is important for solving it must be lost.
Algorithms are a precise description of the rules and procedures needed to achieve the desired result.
The algorithm is a procedure (procedure) that describes to the last detail the activities and their order, necessary to process the input data to reach the output data, respectively to reach the solution.
All operations performed in the algorithm must be simple enough to be performed, accurately and at the final time, using pencil and paper.
The algorithm must complete a finite number of steps. The procedure that has all the properties as the algorithm, but does not have to end in a final number of steps is a computer procedure.
The procedures for making algorithms are not simple and often require a great deal of creativity. There are no hard and fast rules for defining an algorithm.
Algorithms can be represented in different ways:
• Descriptive, with sentences;
• Graphically, with block diagram of the flow;
• In a language close to human (pseudocode)
• In a strictly formalized programming language.
However, the program on the computer is always in binary form only.
Each of these four techniques mentioned above is equally important.
To successfully solve the problem, it is recommended to use all techniques, ie to be used in combination.
If a technique is not used, there is a possibility that the problem will not be solved successfully.The order of using the techniques depends on the type of problem.Order is very important when solving various tasks. If it is not set correctly, then we can get the wrong result.
Also, when solving a logical task, if we use different sequences, different results can be obtained.