What is Computational Thinking?

Data-Design Dictionary
A dictionary to illuminate data-driven generative design and creative coding.

Definition

Computational thinking[1] is a problem-solving process that involves breaking down complex problems into manageable systems, then solving them in an efficient and effective way, often using the principles of programming and systemic design. It encompasses a set of skills and techniques, such as abstraction (focusing on the important information only), pattern recognition (identifying similarities), decomposition (breaking down a problem into smaller parts), and algorithm design (creating a step-by-step solution). This approach enables individuals to tackle problems in a structured manner, making it easier to express ideas[3] as solutions that can be executed by machines.

Computational thinking is not only fundamental in the development of generative design systems, but it also enhances problem-solving across various disciplines, encouraging a systematic approach to branding, storytelling, composition, user-interaction and the development of dynamic identities.

Map of relevant entites and relationships
This map is interactive.
Hover over elements to learn more. Click-and-drag elements to move them around.


Computational thinking fosters systemic design[2] by encouraging the decomposition of complex systems into manageable parts, enabling the analysis of relationships and interactions within the system. Being able to tap into this as both a mindset and a skill is critical to envision generative solutions.

Systemic

Capture, recognize, and anticipate subjective relationships and patterns of a system holistically to translate them into objective rules. This way we can share them with man or machine.

Programmatic

Utilization of the extracted rules in order to apply them in a goal-oriented manner. This leads to the the separation of the creative act from the human being by transferring it to the machine. “Instead of solutions for programs, programs for solutions. ” (Karl Gerstner)

Generative

Combining system and programmatic thinking and their multifaceted systemic and programmatic influences within the context of making content newly comprehensible and staging it from a fresh perspective leads to a generative mindset.

Relevant quotes about
the topic of co-creation

„Computational thinking is an extension of what others have called solutionism: the belief that any given problem can be solved by the application of computation. Whatever the practical or social problem we face, there is an app for it. But solutionism is insufficient too; this is one of the things that our technology is trying to tell us. Beyond this error, computational thinking supposes – often at an unconscious level – that the world really is like the solutionists propose. It internalizes solutionism to the degree that it is impossible to think or articulate the world in terms that are not computable.“[1]

“But first, let’s try to define what we mean by ‘computational thinking.’ As far as I’m concerned, its intellectual core is about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them. Mathematical thinking is about formulating things so that one can handle them mathematically, when that’s possible. Computational thinking is a much bigger and broader story, because there are just a lot more things that can be handled computationally.”[2]

“Computational thinking is really about thinking. It’s about formulating ideas in a structured way, that, conveniently enough, can in the modern world be communicated to a computer, which can then do interesting things.”[3]

[1] James Bridle: New Dark Age. Technology and the End of the Future, London; Brooklyn, New York, 2018, p. 8
[2] Stephen Wolfram: How to Teach Computational Thinking, in: Wired September 7th, 2016
[3] Stephen Wolfram: How to Teach Computational Thinking, in: Wired September 7th, 2016
The bigger picture of designing and branding with data: