What is Computational Thinking?
New words and neologisms appear regularly to express already known concepts. Aspects of some concepts return to fashion or begin to be considered relevant. In our information society, the term computational, derived from the verb to compute, is certainly important.
New words and neologisms appear regularly and increasingly to express already known concepts. Aspects of some concepts return to fashion or begin to be considered relevant. In our information society, the term computational, derived from the verb to compute, is certainly important. Calculating, processing after analysis and abstraction is now a widespread human activity. Associating the word computational with thought opens up new perspectives but certainly consolidates a thought model that derives from those who create with code a program that gives rise to actions and creates new realities (not just virtual ones). To characterize the relevant cultural contribution made by Computer Science to the understanding of contemporary society, computer scientist Jeannette Wing introduced the expression "computational thinking" in 2006 (see the original article in English
Computational Thinking). Computational thinking is a mental process for problem-solving consisting of a combination of characteristic methods and intellectual tools, both of general value. The characteristic methods include: analyzing and organizing problem data based on logical criteria; representing problem data through appropriate abstractions; formulating the problem in a format that allows us to use a "calculation system" (in the broadest sense of the term, i.e., a machine, a human being, or a network of humans and machines) to solve it; automating problem-solving by defining an algorithmic solution, consisting of a carefully described sequence of steps, each belonging to a well-defined catalog of basic operations; identifying, analyzing, implementing, and verifying possible solutions with an effective and efficient combination of steps and resources (with the goal of finding the best solution according to such criteria); generalizing the problem-solving process, i.e., making the problem solution scalable to transfer it to a wide range of other problems. These methods are important for everyone, not only because they are directly applied in computers, communication networks, systems, and software applications, but also because they are conceptual tools for addressing many types of problems in various disciplines. The intellectual tools include: confidence in dealing with complexity (since software systems normally reach a degree of complexity superior to that usually dealt with in other fields of engineering); determination that the technical solution is within reach when working with difficult problems; tolerance for ambiguity and use of formal languages (to be reconciled with the necessary rigor that ensures the correctness of the solution); ability to deal with problems, even those defined in an incomplete manner; ability to deal with both human and technological aspects, as the human dimension (definition of requirements, user interfaces, training, ...) is essential for the success of any computer system; ability to communicate and work with others to achieve a common goal or shared solution. The benefits of these tools also extend beyond the computer science discipline. For more information on computational thinking, visit the following sites: http://www.programmailfuturo.it/ http://code.org/