Computational thinking in travel and tourism
“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.
First, we need to consider whether a text describes a step-by-step list of instructions. This is not always obvious. At some points it does and at some points it doesn’t. Although other parts of the instructions are not explicitly presented as a list of instructions, it is easy to see how the textual passage could be mapped onto such a list. In that list, certain instructions would be repeated for each of the columns involved (‘then proceed in the same manner … from place to place to the last’).
According to the second property, the process should be finite.
Finally, the process does apply to any instance of the problem. The precise specification of the ‘instance of the problem’ can be thought of as part of the task of formulating a problem as a computational problem. By a computational problem, we mean “a problem that is stated sufficiently precisely such that one can attempt to write an algorithm to solve it.”
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.