Computational Thinking

Computational thinking in travel and tourism


Project maintained by Computational-Thinking Hosted on GitHub Pages — Arona Comp. Thinking

Introduction

“One can major [i.e. graduate] in computer science and do anything. One can major in English or mathematics and go on to a multitude of different careers. Ditto computer science. One can major in computer science and go on to a career in medicine, law, business, politics, any type of science or engineering, and even the arts.” Jeannette M. Wing, Professor of Computer Science at Carnegie Mellon University (United States) and Head of Microsoft Research International

The grand vision behind this quote is that learning to program, build large systems, and so on, allows you to develop something which is much more valuable than any of these on their own, namely the ability to think like a computer scientist.

Over the past decade or so, Jeannette Wing has been popularising this view under the banner of computational thinking.

We will learn more about what computational thinking is and why it is such a desirable skill – arguably the skill for the twenty-first century.

To state more precisely what computational thinking is, we need to consider the ideas of an algorithm and a computational problem.

Algorithm and a computational problem

Computational thinking

Having met the ideas of algorithms and computational problems, let us state what computational thinking is not: *computational thinking is not about us humans following an algorithm when carrying out the task of adding numbers on paper or in our head.

rather, computational thinking is first and foremost thinking about computation.

In particular, computational thinking consists of the skills to:

A computational thinker can take a problem and state it sufficiently precisely for it to be potentially solvable by an algorithm. Once the problem has been stated in the right way, a computational thinker tries to construct an algorithm that solves it. A computational thinker won’t, however, be satisfied with just any solution: the solution has to be a ‘good’ one. Two specific properties of a good solution are: efficiency and correctness. Finally, computational thinking goes beyond finding solutions: if no good solution exists, one should be able to explain why this is so.