The concept of computational thinking was introduced for the first time by Seymour Papert in the book Mindstorms, published in 1980. Later, in 2006, Jeanette Wing defines computational thinking as: "the necessary process for the formulation and solution of problems in understandable forms by agents able to process information.”
What Is Computational Thinking?
Computational thinking is the mental process of solving a variety of problems, following specific methods and tools; in other words, it is the ability to solve a problem by planning a strategy. It is, therefore, a logical-creative process that allows planning a procedure through which it is possible to reach a result of a goal, and it is a transversal ability that must be developed, stimulated, and trained from an early age.
Seymour Papert, in his theory of learning, known as Constructionism, and through the LOGO language, which he himself designed, identifies in the computer a new means of learning. He said the computer is not only a machine with which to process information but a tool for building, manipulate, learn, discover, and even make mistakes. In fact, in Papert's theory, the error is not viewed negatively, but as a constructive aspect of the learning process. To err is to explore in search of alternative solutions to the problem.
Computational thinking is certainly not subordinate to the use of technologies: it is not a question of reducing the creative and imaginative human thought to the mechanical and repetitive modes of a computer. It is a skill by which human beings can solve problems and find solutions by drawing on their logical and rational abilities, the use of IT tools facilitates this process: coding is the best tool.
What Is Coding?
In computer science, the term coding means the drawing up of a program or an app or a sequence of instructions that will be executed by a PC, tablet, smartphone, etc.
Coding is not the only way to develop, or apply, computational thinking, but it has proved particularly effective due to the immediacy, interactivity, variety, availability, and versatility of the tools available. The most effective way to attract the attention of even the youngest is certainly the game: learning to program "playing" helps to develop logical skills and the ability to solve problems in a creative, efficient, and enjoyable way.
What are the tools of coding?
The tools of coding are numerous, and we could divide them into two main categories: those that need a computer and those that do not require it at all (unplugged tools ).
One of the main tools of coding is visual, or block programming, this type of programming offers an intuitive approach, reducing the syntactic rules to simple interlocking between blocks of complementary form, in a few words the program code must not be typed.
The visual programming allows you to immediately experience the effect produced by the colored blocks on the characters, called sprite, which animate the story or the game you are creating. The boys, playing and inventing stories, must strive to understand which colored blocks to choose and fit together, and while doing so, unwittingly write lines of computer code and acquire a new skill: computational thinking.
An example of a visual programming "tool" is Scratch, developed by the Media Lab's Lifelong Kindergarten Group of the Massachusetts Institute of Technology (MIT). It is the ideal tool for exploration and experimentation, supporting, in fact, many different learning styles: creative storytelling, the creation of simple video games, and the application of programming concepts.
Living in a world that changes, transforms itself more rapidly, today more than ever, it is necessary to "learn." It is essential to acquire an attitude of lifelong learning, that is, an "elastic" mental attitude that allows us to face different problems every time, and to do this, we need a new skill.
Computational thinking helps to develop logical skills and ability to solve problems creatively and efficiently, improving those thinking skills that contribute to learning and understanding and provides the ability to devise a concrete and effective procedure that leads to the achievement of a goal.
America is one of the first countries in the world to have introduced in schools the practice of coding as an activity for the development of computational thinking, that is, the ability to solve problems. In fact, coding in teaching is an effective and amusing tool that facilitates and simplifies the understanding and acquisition of content, but this activity cannot be designed and proposed by teachers: it must be tested, practiced and shared with students, in an attempt to make coding an interdisciplinary activity.
By computational thinking, we mean a mental process that allows solving problems of various kinds by following specific methods and tools, planning a strategy. It is a creative, logical process that, more or less consciously, is implemented in everyday life to face and solve problems. Education to act consciously this strategy allows us to learn to deal with situations analytically, breaking them down into the various aspects that characterize them and planning for each the most suitable solutions.
These strategies are indispensable in the programming of computers, robots, etc. who need precise and structured instructions to carry out the required tasks. However, in teaching, activities related to computational thinking can be profitably developed even without machines. Every situation that presupposes a procedure to be constructed, a problem to be solved through a sequence of operations, a network of connections to be established (e.g., a hypertext), are placed in this context, provided that the procedures and algorithms. They are accompanied by reflection, metacognitive reconstruction, explanation, and justification of the choices made.
It contributes to the construction of mathematical, scientific, and technological skills, but also to the spirit of initiative, as well as to the refinement of language skills. In current contexts, in which information technology is so pervasive, the mastery of coding and computational thinking can help people govern machines and better understand their functioning, without being uncritically dominated and enslaved. "
Dec 05, 2019