BLOG@CACM
## Computational Thinking: The Discussion Continues

Computational thinking is accepted today as one of the most basic and important 21st century skills. What computational thinking actually is, however, is still under discussion.

Computational thinking is commonly defined as a set of cognitive and social skills that are applied in problem-solving processes. Following Papert (1980), who planted the seeds of the concept, the discussion about computational thinking was re-opened by Wing (2006) and the term has since been interpreted through different prisms as a collection of various cognitive and social skills that are required for solving problems.

Not surprisingly, the more acknowledgement the importance of gaining computational thinking skills receives, the broader the discussion of computational thinking becomes. Among the aspects consistently discussed with respect to computational thinking are the concepts and skills associated with computational thinking, the appropriate age group for imparting these concepts and skills, and how computational thinking can be integrated into any discipline and domain of life.

In this post, we highlight several perspectives on computational thinking that emerged in interviews we conducted with computer science education experts as part of our MOOC on computational thinking. The list of seven experts, as well as their affiliation, appears at the end of the post. We asked our experts the following four questions:

*a. In one sentence, tell us what is computational thinking for you?*

*b. In your opinion, what are the five main thinking principles of computational thinking?*

*c. Who would you recommend a course on computational thinking to?*

*d. Give an example of a profession that is not related to computer science in which computational thinking is significant, and explain why.*

In what follows, we highlight the main ideas expressed in the experts' answers and accompany them with illustrative excerpts from the interviews. Needless to say, additional interesting and inspiring ideas were discussed in the interviews, which we could not include in this post due to space limitations.

From all of the experts' answers to the four questions, we chose to highlight 10 interpretations of computational thinking. The first four interpretations (1-4) address the essence of computational thinking, the next three (5-7) describe what computational thinking enables us to do, and the last three (8-10) address the connection between computational thinking and society.

**The Essence of Computational Thinking **

** 1. Computational thinking is a basic competence **

- "Computational thinking is a general competence. […] there is a common understanding that all these topics [I mentioned with respect to computational thinking] exist in all domains of lives and therefore it is a basic competence that in fact influences everything that we do in our lives." (Simona Holstein)

** 2. Computational thinking is a conception **

- "Wing's first point was that it is a
*conception*, that is, we deal with how we think about these topics; not with how the computer solves them, but how we think about them." (Simona Holstein)

** 3. Computational thinking is a collection of ideas**

- "When I think of computational thinking, I think about a collection of ideas, ways of thinking, concepts, skills, that a computer scientist uses in his or her work. […] I think about the collection as an entity in itself." (Michal Armoni)

** 4. Computational thinking is a coin with two sides: Algorithm and data **

- "There is one sentence in Wing's paper that I like very much. She writes "[Computational thinking] is interpreting code as data and data as code". […] Computer science has evolved as a profession that looks at the algorithm and attributes great importance to the algorithm and, therefore, in computational thinking we also often think about the algorithm. But, this algorithm processes data and we need both sides to produce the correct output. […] And therefore, I think that when we think about computational thinking, we should think about it as a coin with two sides: One side is the algorithm that processes the data, and the second side is the side of the data that we wish to process." (Koby Mike)

**Computational Thinking as a Competence**

** 5. Computational thinking is a problem-solving method**

- "I think it is more appropriate to think about it [computational thinking] as a methodological way of coping with an event, where an event can be solving a mathematical problem, but also baking a cake. An event can be how to calculate a sum of numbers, how to grow fruits in a field, or how to sew a piece of clothing that has several colors and several kinds of fabric". (Judith Gal-Ezer)
- "When I think about the concept of computational thinking I think about problem solving, like everyone else, no? Yes, but maybe not just routine problems we may encounter in the curriculum, maybe problems that are a little more complex, problems that you look at and you don't really know how to solve the first time you face them." (Yaniv Biton)

** 6. Computational thinking enables to solve everyday problems taking into the consideration constraints that all problems involve**

- "There are many cases in life where we use computational thinking even without being aware of it and I can give some examples. Recently I was on vacation […] and had to organize it […] based on the constraints that reality dictated to me. So, all the information was accessible on the internet, hiking trails, the length of each hike and whether it is sunny or shaded and whether there a water source and whether or not dogs are allowed in and all those kinds of things […]. In short, many constraints, and in this plethora of things, I was supposed to put together the best solution. Basically, I was required to solve, what in computer science are called optimization problems. I tried to find the best solution within the constraints […] so I think I applied computational thinking there because I had to eventually prioritize constraints, prioritize tasks, knowing that sometimes I had to give up one thing to gain something elsewhere. […] For me, all these things are part of what is called computational thinking and this is just one example. One can also go perhaps to an example that is a little more classic […]. I want to seat guests at a wedding, and I want to make sure that a certain uncle doesn't sit next to a certain grandfather and other constraints that if not addressed correctly, have [long term] implications." (Amir Rubinstein)

** 7. Computational thinking is the ability to talk with the computer to solve a problem **

- "The ability to talk with the computer to solve a problem. […] Although Wing explicitly said that computational thinking is not programming, programming is still the main tool used to express computational thinking. It's like, let's say that we write a book to tell a story, so obviously the main thing is not knowing how to write; ]…] it's not enough to know how to write in order to write a book. On the other hand, it [writing [ is a necessary skill, it is impossible to write a book without knowing how to write." (Rinat Rosenberg-Kima)

**Computational Thinking in Society**

** 8. Computational thinking creates opportunities**

- "I think that computational thinking can open more doors than can be imagined. […] Even YouTubers who have to produce clips need to use computational thinking to work with the different software tools." (Rinat Rosenberg-Kima)

** 9. Computational thinking is especially important for teachers**

- "I very much appreciate teachers. […] Teachers are the corner stone of the implementation of any program or innovation. Without involving the teachers in the designing and planning of a new program, the implementation will not work. This goes to every discipline and to the sciences even more. Teachers should not only be familiar with the material they teach, but have broader knowledge. Teachers who integrate computational thinking in their classes, but do not teach computing, do not need to be proficient in programing." (Judith Gal-Ezer)

** 10. Computational thinking should be used during all school years**

- "A pupil should be exposed to these ideas throughout all of his or her school years, in different contexts and in increasing depth and breadth. This way, we can achieve meaningful learning that, in fact, enables the transfer of these competences to other contexts so that they [the computational thinking competences] can serve as useful tools in learners' toolboxes. This is what makes learning […] effective." (Michal Armoni)

In this blog we present the following 10 interpretations of computational thinking:

**Essence**

1. Computational thinking is a basic competence

2. Computational thinking is a conception

3. Computational thinking is a collection of ideas

4. Computational thinking is a coin with two sides: Algorithm and data

**Competence**

5. Computational thinking is a problem-solving method

6. Computational thinking enables to solve everyday problems taking into the consideration constraints that all problems involve

7. Computational thinking is the ability to talk with the computer to solve a problem

**Society**

8. Computational thinking creates opportunities

9. Computational thinking is especially important for teachers

10. Computational thinking should be used during all school years

One of the main messages that emerged from these interpretations is that the more computational thinking is recognized as a basic competence, the broader the discussion about its essence becomes in terms of

- who talks about it (more people, not only CS educators);
- the role of computers in the discussion (with or without computers);
- the fields it is associated with (education, data science, social and liberal arts, physics, art, etc.).

In our opinion, such a broad discussion not only improves our understanding of the different facets of computational thinking, but also shares several characteristics with computational thinking (e.g., the principle according to which every problem has a variety of solutions, the idea that every problem can be solved on different levels of depth and breadth, and so on).

The 7 experts we interviewed, and their affiliations, are (in alphabetical order):

- Michal Armoni, associate professor in the Department of Science Teaching at the Weizmann Institute of Science.
- Yaniv Biton, head of the Mathematics Department at the Center for Educational Technology (CET)..
- Judith Gal-Ezer, professor of Computer Science at the Open University of Israel, one of the pioneers of computer science education worldwide.
- Simona Holstein, Computer Science Team Manager at the Center for Educational Technology (CET).
- Koby Mike, a Ph.D. Student at the Faculty of Education in Science and Technology at the Technion – Israel Institute of Technology, and a high school computer science teacher.
- Rinat Rosenberg-Kima, a faculty member at the Faculty of Education in Science and Technology at the Technion – Israel Institute of Technology.
- Amir Rubinstein, a senior faculty member at the School of Computer Science at Tel Aviv University.

Papert, S. (1980). *Mindstorms: Children, computers, and powerful ideas*. Basic Books, Inc.

Wing, J. M. (2006). Computational thinking. *Communications of the ACM*, *49*(3), 33–35.

**Noa Ragonis **is a senior lecturer of computer science and computer science education on Beit Berl College's Faculty of Education. Her research focuses on computer science education, computational thinking, and innovation in education. For additional details, see https://www.beitberl.ac.il/english/lecturers/pages/noa-ragonis.aspx. **Orit Hazzan** is a professor at the Technion's Department of Education in Science and Technology. Her research focuses on computer science, software engineering, and data science education. For additional details, see https://orithazzan.net.technion.ac.il/.

No entries found