Anchoring Computational Thinking in today’s curriculum

There is a lot of talk of "Computational Thinking" as a new imperative of education, so I wanted to address a few questions that keep coming up about it. What is it? Is it important? How does it relate to today's school subjects? Is Computer-Based Maths (CBM) a Computational Thinking curriculum?

Firstly, I've got to say, I really like the term.

To my mind, the overriding purpose of education is "to enrich life" (yours, your society's, not just in "riches" but in meaning) and different ways in which you can think about how you look at ideas, challenges and opportunities seems crucial to achieving that.

Therefore using a term of the form “xxx Thinking" that cuts across boundaries but can support traditional school subjects (eg. History, English, Maths) and emphasises an approach to thinking is important to improving education.

Now we've had widespread use of the term "Critical Thinking" for sometime, but to me it has much less power of actuality than "Computational Thinking". 

“Computation” is a highly definitive set of methodologies—a system for getting answers from questions, and one rapidly gaining in power and applicability each year. There is no parallel, definitive, “Critic” system, and even the related “Critiquing” is a rather vague skill bucket, not a systemic—and highly successful—roadmap. As a result, Critical Thinking often becomes more of an aspiration of student capability not a definable, definite, life-enriching set of problem-solving abilities.

To be specific, I'd argue that Computational Thinking is a mode of thinking about life in which you creatively and cleverly apply a 4-step problem-solving process to ideas, challenges and opportunities you encounter to make progress with them.

Here's how it works.

You start by defining the question that you really want to address—a step shared with most definitions of "Critical Thinking".

But computational thinking follows this with a crucial transitional step 2 in which you take these questions and translate into abstract computational language—be that code, diagrams, algorithms. This has several purposes. It means that 100s of years worth of figured out concepts and tools can be brought to bear on the question (usually by computer), because you've turned the question into a form ready for this high fidelity machinery to do its work. Another purpose of step 2 is in forcing a more precise definition of the question. In many cases this abstraction step is the most demanding of high conceptual understanding, creativity, experience and insight.

After abstraction comes the computation itself—step 3—where the question is transformed into an abstract answer—usually by a computer.

In step 4 we take this abstract answer, interpret the results, re-contextualising them in the scope of our original questions and sceptically verifying them.

The process rarely stops at that point because it can be applied over and over again with output informing the next input until you deem the answers sufficiently good. This might take just a minute for a simple estimation or a whole lifetime for a scientific discovery.

"Modern technology has dramatically shifted the
effective process because you don’t get stuck on
[the Computational Thinking] helix roadway at step 3, 
so you may as well zoom up more turns of the track faster."

I think it's helpful to represent this iteration as ascending a helix made up of a roadway of the 4 steps, repeating in sequence until you can declare success.

While I've emphasized the process end of computational thinking, its power of application comes from (what are today!) very human qualities of creativity and conceptual understanding. The magic is in optimising how process, computer and human can be put together to solve increasingly tough problems.

The Computational Thinking Process

Is this process of Computational Thinking that I describe connected with maths—or even one and the same subject; and what about coding? Talking education, there is very heavy overlap with our Computer-Based Maths approach, much less with today's traditional maths education; coding is an important element, in particular as the way in which you manifest abstraction.

Real-world maths—defining it and its applications broadly, as I do—absolutely relies on Computational Thinking but there are also specific areas of knowledge that maths is considered to contain (eg. particular concepts and algorithms), and which are often important to applying computational thinking to different areas of life. Maths is a domain of factual knowledge as well as the skills knowledge of how to process them.

"Computational Thinking is a mode of thinking about life
in which you apply a 4-step problem-solving process to ideas, challenges and opportunities you encounter"

Even in the real-world, this broad definition of the term “maths” may be alien to engineers or scientists who would consider what I’m describing simply as part of engineering or science respectively.

There’s another key difference too between a traditional maths way of thinking about a problem and a modern computational thinking approach and it has to do with the cost-benefit analysis between the 4 steps of the helix.

Before modern computers, step 3—computation—was very expensive because it had to be done by hand. Therefore in real life you’d try very hard to minimise the amount of computation at the expense of much more upfront deliberation in steps 1 (defining the question) and 2 (abstracting). It was a very deliberate process. Now, more often than not, you might have a much more scientific or experimental approach with a looser initial question for step 1 (like “can I find something interesting in this data”), an abstraction in step 2 to a multiplicity of computations (like “let me try plotting correlation of all the pairs of data”) because computation of step 3 is so cheap and effective you can try it lots and not worry if there’s wastage at that step. Modern technology has dramatically shifted the effective process because you don’t get stuck on your helix roadway at step 3, so you may as well zoom up more turns of the track faster. 

"[Applying the Computational Thinking process] might take
just a minute for a simple estimation
or a whole lifetime for a scientific discovery."

A useful analogy is the change that digital photography has brought. Taking photos on film was relatively costly (though cheap compared with chemical-coated glass plates it replaced). You didn’t want to waste film, so you'd be more meticulous at setting the shot before you took it. Now you may as well take the photo; it's cheap. That doesn't mean you shouldn't be careful to set-up (abstract) it to get good results but it does mean the cost of misfires, wrong light exposure and so forth is less. It also opens up new fields of ad-hoc photography to a far wider range of people. Both meticulous and ad-hoc modes can be useful; the latter has added a whole new toolset, though not always replaced the original approach.

"Real-world maths absolutely relies on Computational Thinking"

Back to maths. However we term the real-world need, whether computer-based maths or computational thinking, what’s sadly all too clear is how today’s mainstream educational subject in this space of "maths" isn’t meeting the need. Its focus on teaching how to do step 3 by hand might have made sense when that was the sticking point in applying maths in life: because if you couldn’t do the calculating, you couldn’t use maths or in general computational thinking. Conversely, primarily gaining experience in a very deliberate, meticulous, uncontextualised, pre-computer application of the computational process—rather than a faster-paced, computer-based, experimental, scientific-style use on real problems—cannot continue to be maths’ primary purpose if the subject is to remain mainstream. Instead its primary purpose ought to be Computational Thinking—as it is in our CBM manifestation. 

"Our aim is to build the anchor Computational Thinking
school subject as we explicitly broaden CBM
beyond being based in maths"

Like real-world maths, coding likewise relies on Computational Thinking but again isn't the same subject or (by most definitions) anything like a complete route to it. You need Computational Thinking for figuring out how to extract problems to code and get the computer to do what you want, but coding is the art of instructing a computer what to do, it's the expertise needed for being the sophisticated manager of your computing technology which includes speaking a sensible coding language, or several, to your computer.

What of other school subjects? Computational Thinking should be applicable to a very wide range. After all, it's a way of thinking—not the only way of thinking—but an important perspective across life. Whether in design (“How can I design a streamlined cycle helmet?”) or history (“What was the key message each President's inaugural address delivered?”), or music (”How did Bach’s use of motifs change over his career?”), every subject should envelop a Computational Thinking approach.

"The Computational Thinking approach needs
knowledge of what’s possible, experience of how you can apply it, and know-how of today’s machinery for performing it."

An important practical question is whether that can happen without a core educational subject of the learning of Computational Thinking itself? I don't think so, not at school levels anyway. That’s because the Computational Thinking approach needs knowledge of what’s possible, experience of how you can apply it, and know-how of today’s machinery for performing it. You need to know which concepts and tools there are to translate and abstract to in step 2. I don’t think you can only learn this in other subjects; there needs to be an anchor where these modern-day basics (learnt in a contextualised way) can be fostered.  

Politically, there are two primary ways to achieve this: introduce a new core subject or transform an existing one. Either is a major undertaking, with coding and maths as the only possible existing school subject contenders for the transformational route. Maths of course is ubiquitous, well resourced and occupies a big part of the curriculum—but today's subject largely misses the mark. Coding is the new kid on the block, too narrow, not fully established and with far less time or money but with a zeal to go new places.

How does CBM relate? For the very short-term, simply as the start of today's best structured program for engendering computational thinking—one that's principally around maths but applied to problems and projects from all subjects. 

Ultimately our aim is to build the anchor Computational Thinking school subject as we explicitly broaden CBM beyond being based in maths, and just as importantly being seen to be based only in maths. Look out for modules of CBM geography and CBM history!

Make no mistake. Whatever the politics or naming, whoever wins or loses—some day, a core, ubiquitous school subject in the space I'm describing will emerge. The first countries, regions, schools that manage this new core and its cross-curricular application will win big time.