Monday, 22 December 2014

What is Computational Thinking and why is it so important?

Despite the terminology used, Computational Thinking is not a way of thinking that has only been happening since computers have been around. However, it is probably true to say that since the advent of computers, humans have found ways of thinking that enable ideas, thoughts and processes to be deconstructed so that they can be input into a tool, processed in ways as infinite, unlimited and abundant as the human mind with an equal amount of freedom producing its outcome.

Therefore, in order to be able to use this tool expressively, just as one would with a paintbrush, one needs to understand the materials, their composition, the ways they combine and integrate with other materials, and how different techniques produce different results.

I often ask myself if the results can be process-driven as they often are in the making of a work of art? Can an unexpected result during the process feed back into the system and allow the journey to take on a new path each time. The very nature of software creation fits this model very neatly. Take the Development Cycle, for example, where each of the stages feeds back into the previous stage until a system meets all intended goals.

In my previous post, I wrote about the central tenet of Computer Science having the quality of being able to unlock creative thought in individuals and is an aspect so many individuals have preconceived notions and misconceptions about. A piece of code for me can be as beautiful as a painting or a poem that shows sensitivity to the way its lines, form or composition contribute to its subject or as inspiring as a piece of music that speaks in a certain language to the ears. Can we go a step further and say a piece of code is able to evoke an emotive quality then?

In the classroom, I often set coding challenges and I am always amazed at the different approaches used to solve a problem. The questions are many. Is each solution a product of individuals' intellectual minds? How much of their emotional enquiry is invested here to produce solutions that make one feel euphoric after producing it? And are these pieces of code timeless? Can we gain enjoyment from them time and time again when we revisit?

What is the likelihood of the same piece of code being produced multiple times by different coders? Does this take the emotive content away from the individuals? Or are we looking too deeply at the individual pixels on the page rather than seeing the solution as a whole? Perhaps, we can feel euphoric after intellectual pursuits alone and therefore the emotive content plays an insignificant role in creating these art forms?

I might not know all the answers, however, I have learnt something from coding and observing my students' coding experiences and that is that coding is a craft. It is a form of composition not unlike painting or composing or writing. It is perhaps more abstract, less tangible, less direct, not as immediate to our senses even though the effect on the creator and sometimes the viewers is often euphoric.

Windows opening one at a time, letting the light in metaphor from the Code Stars film.

Visceral - it works!

So to go back to the tools and techniques that constitute computational thinking i.e. the building blocks of this craft, I shall attempt to list them here below:-





No comments:

Post a Comment