Computational Thinking in Innovative Computational Environments and Coding

Computational Thinking in Innovative Computational Environments and Coding

Alberto Ferrari (University of Parma, Italy), Agostino Poggi (University of Parma, Italy) and Michele Tomaiuolo (DII, Università degli Studi di Parma, Italy)
Copyright: © 2018 |Pages: 10
DOI: 10.4018/978-1-5225-2255-3.ch208
OnDemand PDF Download:
List Price: $37.50


The concept of Computational Thinking has been discussed for several decades and in recent years has been brought to the attention of the scientific community by Jeanette Wing. Her article presents Computational Thinking as “a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science”. The importance of Computational Thinking places it among the basic skills for 21st century, together with reading, writing and calculation, that every person will have to master, so it is important to teach it already in primary school. As the invention of printing facilitated the spread of the three Rs (reading, writing and arithmetic) the technology must lead to the spread of Computational Thinking. This chapter will introduce the research on Computational Thinking and, in particular, the works on innovative computational environments, and will describe the situation of the education to CT in high school and in academic courses.
Chapter Preview


There is no single definition of CT and the following is the work of several authors who point out different aspects. A common feature is that CT represents a set of skills that are part of a cognitive process related to deal and seek solutions to problems. Abstraction, decomposition and generalization are common features of most of these works.

The term “Computational Thinking” was adopted for the first time by Seymour Papert, with reference to the LOGO programming language (Papert, 1996). According to his theory of “constructionism”, programming is a valuable educational tool that provides the cognitive artifacts necessary to the human mind to build a representation of the world with which it interacts.

“Think like a computer scientist” means being able to deal with a problem, to design a system and understand human behavior using the fundamental concepts and tools of Computer Science (CS). The power of our “mental” tools is amplified by the power of our “metal” tools (Wing, 2008).

There is still confusion over an acceptable definition for the term, in its essence, CT can be viewed as a re-foundation of “algorithmic thinking”. In the 1950s and 1960s, algorithmic thinking was understood as a mental attitude, enabling the description of a generic problem as a translation of some input data to output data, and the formalization of the required translation as an algorithm. CT is built on the same basis, with the inclusion of the ability to think about a complex problem at different levels of abstractions, to use mathematical methods, and to analyze data and the complexity of solutions, i.e., to study how a certain algorithm scales when the size of the problem grows.

CT can be defined as the ability to solve complex problems by applying the logic of computing paradigm; it is a set of cognitive skills, concepts and techniques of computer science related to problem solving.

In the 2010 workshop on “The Scope and Nature of Computational Thinking” participants developed a vivid discussion on what “CT for everyone” might mean. Wing describes CT as a bridge between science and engineering. Since it deals with thinking processes and abilities that can be applied to different disciplines, it represents a sort of meta-science. Moursund et al. (National Research Council, 2010) suggest a close relation between CT and Procedural Thinking, as developed by Seymour Papert in Mindstorms (Papert, 1980).

CT revolution goes much deeper than the use of computer in everyday work; it is changing the way we think. Among the features of the CT we find the ability to formulate a problem and represent its solution writing an algorithm and compare the solution with others in order to assess its efficiency.

Key Terms in this Chapter

Graphical Programming Language: A programming language in which the source code is itself graphical in nature and does not mainly consist of text. Ii is also known as visual programming language.

Coding: The process of writing, testing, debugging and maintaining the source code of software applications.

Computational Thinking: A method for solving problems mainly used for the development of computer applications, but that can also be used to support problem solving across all academic disciplines.

Constructivist Theory: An active process in which learners construct new ideas or concepts based upon their current/past knowledge.

Algorithmic Thinking: A method for solving problems based on the clear definition of the steps needed.

E-Science: A computationally intensive science that either is accomplished in massive distributed network environments, or uses large data sets whose processing required distributed computing infrastructures.

Complete Chapter List

Search this Book: