JavaRush /Java Blog /Random EN /What is computer thinking? “The Key to Success” and “A Vi...

What is computer thinking? “The Key to Success” and “A Vital Skill of the 21st Century.”

Published in the Random EN group
In articles on CodeGym, we not only talk about Java, its study, features and subsequent employment in the field of computer development, but also “invest” in the comprehensive development of our readers. To do this, we pay attention to the basic concepts, the understanding of which will not only allow you to become a professional programmer, but also help you improve in the future, regardless of the chosen direction. And today we have just such a topic. Fundamental, like the pyramid of Cheops. Namely: Computational thinking. “The Key to Success” and “A Vital Skill of the 21st Century.”  What is computer thinking?  - 1

What is Computer Thinking?

Computer thinking (“computational thinking” seems to be a more appropriate term in Russian, but it is the first option that is more common on RuNet) is the concept of systematically approaching a problem to then create a solution that a computer can implement. Simply put, before teaching a computer how to solve a particular problem, a person must understand the problem itself and how to solve it, and computer thinking is a technique for this. This concept was proposed in 1980 by mathematician and computer scientist Seymour Papert as a theoretical basis for more efficient problem solving. In the educational field, computer thinking as a concept began to gain popularity after the note of computer science professor Jeannette Wing (Jeannette Wing): “The Key to Success” and “A Vital Skill of the 21st Century.”  What is computer thinking?  - 2

The Four Pillars of Computer Thinking

Computer thinking as a technique is based on four key methods.
  • Decomposition.

    The division of a complex problem into a number of smaller and solvable problems.

  • Abstraction.

    Focusing exclusively on information that is important for the decision and ignoring unnecessary details.

  • Pattern recognition.

    Search for similarities between the problem under consideration and others that have already been solved in order to transfer already proven approaches to it.

  • Algorithms.

    Develop a step-by-step solution to a problem or rules to solve it.

All of these components are equally important components of computer thinking. This means that without the correct application of each of them, it will not be possible to effectively use this technique. And the correct application of computer thinking is the basis of the foundations of programming. “The Key to Success” and “A Vital Skill of the 21st Century.”  What is computer thinking?  - 3

Application of Computer Thinking in Life

By and large, computer thinking as a method goes far beyond programming, and its components are constantly used by most people when solving problems of various levels of complexity. A classic basic example: you need to get from point A to point B in an unfamiliar city. To decide which path to take, you:
  • You divide this task into a number of smaller ones (decomposition): study the map and possible route options, choose a way to get to point B, etc.
  • You then rate the attractiveness of different routes based on their length, the presence of points of interest along the way, or the ease of travel (abstraction).
  • Then you think about possible options based on past experience of moving in other cities that are most similar in size and urban landscape (pattern recognition).
  • Based on all this, you choose the most suitable route and method of movement (algorithms).
This is a basic example, but a deeper understanding of computer thinking will be useful in many areas, and not just technical ones. Many complex problems with an abundance of factors and various kinds of data in everyday life can be solved using computer thinking. Computer thinking as a concept is now gaining popularity as a basic educational discipline and in general is becoming an important technique that can be integrated into many workflows to improve results. “In an effort to find the most effective solution to a problem, we constantly evaluate the most obvious solutions, finding advantages and disadvantages in them. Computer thinking allows us to format a seemingly complex problem into one that we can solve. The essence of computer thinking also consists in recursive thinking and parallel processing of information. In programming, this means that we interpret code as data and data as code. This is both type checking as a generalization of dimensional analysis, and recognition of both the advantages and disadvantages of aliasing or giving someone or something more than one name. It is also an assessment of the quality of the written program, not only in terms of the correctness of its operation and efficiency, but also in terms of aesthetics and design of the system, taking into account its simplicity and elegance,” —Jeannette Wing explains in her 2006 note on the importance of studying computer thinking. “The Key to Success” and “A Vital Skill of the 21st Century.”  What is computer thinking?  - 4

Study and development of computer thinking skills

As for the study of computer thinking as a technique and discipline, today quite a lot of materials on this topic are available to those who wish. So, the International Society for Technology in Education (ISTE) offers everyone a free course, developed with the support of Google, Computational thinking , which is also intended for technical specialists. Also, a free course on computer thinking can be found on the Coursera resource, for example. Programs in computer thinking, both for students of different levels and for teachers, are also offered by the Academy of Robotics at Carnegie Mellon University . And finally, logic plays one of the leading roles in computer thinking. It will be useful for her training regularlysolve problems and puzzles , for example. Below is a simple, basic approach to mastering, developing and constantly using the four basic techniques of computer thinking.
  • Decomposition practice.

    Just try to apply this principle (if you are not already doing so) to all sorts of tasks and problems that need to be solved. The trick here is to train your mind to use this approach on a consistent basis without conscious concentration. Despite the fact that dividing one problem / task into a number of smaller ones is a rather banal solution for many (especially in programming), not everyone knows how to apply it and do it regularly.

  • Abstraction practice.

    Abstraction is simply focusing on the information that is most relevant and important for solving a particular problem. It works in conjunction with decomposition, where you break down a problem into a number of subtasks and focus on them one at a time, looking for only the information you need to solve the current problem.

  • Practice pattern recognition skill.

    With the practical application of computer thinking, which begins with decomposition, pattern recognition skills will also develop. The approach here is the same as for decomposition - just practice finding similarities with other already solved problems. Pattern recognition allows you to solve problems faster, using thought patterns already worked out and familiar to your brain.

  • Practice the skill of forming algorithms

    Here, again, the key is to adapt the brain to use this system. Our life is by default filled with algorithms that we call habits. It is only necessary to pay conscious attention to the formation of algorithms. Moreover, this applies not only to work or education, but also to many other everyday things. For example, the fight against procrastination , which we talked about recently, is also, by and large, based on the conscious formation of algorithms (along with pattern recognition).

“The Key to Success” and “A Vital Skill of the 21st Century.”  What is computer thinking?  - 5


Well, let's finish this material with a few quotes from experts who seemed to us the most interesting and concise. “Computer thinking is a vital skill for 21st century workers. Even though the teaching of computer science and computer thinking is now becoming more common, they are still not given enough attention as basic disciplines that can be of great benefit to students in particular, helping them adapt and get used to “traditional programming,” — said James Lockwood and Aidan Mooney, professors at Maynooth University in Ireland and authors of the report Computational Thinking in Education: Where does it fit? “Computer thinking, to a large extent, is the key to your success, no matter what area we are talking about. This technique is so powerful in solving real, not just computer, problems that it should be made one of the main educational subjects. At least if you, like me, agree that the fundamental goal of education should be to enrich our lives through finding the most effective solutions to problems of any kind,” says Conrad Wolfram, a well-known British techno-expert and entrepreneur. Well, let's end with a quote .Jeannette Wing, already mentioned above, who can be considered one of the main modern popularizers of computer thinking as a concept: “The educational benefits of computer thinking - starting with the use of abstractions - increase and strengthen intellectual skills and, therefore, can be transferred to any field. Computer scientists are well aware of the value of abstractions, thinking at different levels of abstraction, abstracting to manage complexity and scale, etc. At the moment, our task is to explain to non-computer scientists and everyone else what we mean under computer thinking, and what are its advantages!”