Notes from Grady Booch‘ presentation on Computational Thinking, and ACM Webinar, February 3, 2016 (4617 people attended, in case you wondered.)
Note: This is real-time notetaking/thought-jotting. Lots of errors and misrepresentations. Deal with it.
This will be a different way of thinking – and perhaps to think differently about the profession of software development. Recommends Yuval Harari Sapiens, talks of the cognitive revolution, the agricultural revolution, the scientific revolution. Babbage as citizen scientist, begin to see a new way of thinking: Computational thought. Boole had a similar set of ideas, took it from mechanization to laws of thought – tries to investigate the operations of the mind by which reasoning is done.
I can’t shoe a horse, but can build a 3D rendering of one, and then produce a virtual horse in Avatar. Why? Our ways of thinking addresses what is necessary to survive in the world we live in. We have different relationship to time: With the cognitive revolution, we had slow ways of measuring time, such as seasons, the scientific revolution gave us theories of time – and a frantic obsession with ever smaller measures of time. If the ways of thinking we had in previous lives where appropriate then, what are the ways we should think now?
Jeanette Wing – introduced computational thinking in CACM: Computational thinking as the thought processes that are involved in formulating a problem and expressing a solution in a way so that a computer – human or machine – can carry it out. To be able to do that will be increasingly important to succeed in today’s world – it will help you shape the world and live in this world.
Computing started out as human computers (mostly women), then a gradual mechanization and, indeed, industrialization of computing with ever more rigid processes, eventually digitalization of it (via punch cards). Businesses gradually starting to reshape itself as a result of computational thinking – and businesses changing computation. Sciences beginning to use computational thinking. Around WWII it also began to change the ways we went to and won wars. (Again, many women, see the documentary “Top Secret Rosies“.) The computational thinking drove our imagination beyond what the computers could do, beyond what we do in the present.
In the 60s and 70s, computational thinking started to reshape society – but it was compartmentalized – the “programming priesthood.” The SAGE was one of the first personal computers, example of interfaces learning from war. Largest systems of its kind, forced us forward in UI, hardware and software. The 360 and others broke computational thinking out of the chosen few – Margaret Hamilton coined “software engineering”. Finally personal with the PC – representing a state change. omtroducing devices that forced people to think in computational ways, forcing us to adapt to the machine. Current state: Outsourcing part of our brains to smartphones – computers that happen to have an app for dialing – computational going from numerical to symbolic to imaginatined realities. Computational thinking is beginning to erode our thinking about old imagined realities, such as governments and organizations.
I think the idea of the singularity is fundamentally stupid – when and if it comes, we will have become computers ourselves anyway, according to Rodney Brooks. This forces us to think about what it is to be human. How does computational thinking change how we look at the world.
In terms of software development, the changes has been from mathematical to symbolic to imagined realities. We are not only building imagined realities, but stepping inside them and living in them.
The fundamental premise of science is that the cosmos is understandable; the fundamentalt premise of our domain is that the cosmos is computable. We enter the world with the understanding that anything we can dream, we can compute.
Gödel taught us that there are things that are unknowable, but that does not diminish the importance of scientific thinking. There are similar things that are uncomputable, the computational thinking is still powerful and can push the world forward. The scientific process suggest that we have a trajectory towards a simplified, standard model. In computation, we go the other way: Start with something simple and make it incredibly complex.
What does it mean to see the world as computable? The first assumption is that the cosmos is discrete, or at least computationally finite. I can make reasonable assumptions about reality that means I can do powerful things. It may not be totally, but near enough that it is useful.
Secondly, I assume the world is based on information, which means I can look at the world through data. DNA and cellular mechanisms can be computed. The lens of information allows us to derive powerful theories. The dark side what is happening in CRISPR, genetic manipulation without knowing the consequences. Incredible power but incredible responsibility.
Third, data is an abstraction of reality. We can use all these powerful tools, but in the end we are building an abstraction of the world. Can build them and begin to rely upon them, but the other side of computational thinking realizes that this is not reality, it is just our view of it. A model is a model.
We use algorithms to form abstractions, but now can hand over without waiting, because we can depend on our ability to generate an algorithm to represent the world. Look at BabyX, from University of Auckland.
The importance of scale, from Feynman‘s Room at the bottom article. But we can also build imaginary realities that are larger than the universe itself. Computing is universal – can be used everywhere, spreads to any manifestation of execution: computational physics, chemistry, biology, psychology, sociology … and gradually computational philosophy. Has spread itself in ways that has changed everything – but maybe this way of thinking is just the threshold of the next way of thinking?
The earliest ways of thinking evolved as a means of bringing more certainty and predictability to an uncertain and unpredictable world. Scientific thinking evoleved to understand the world. Computational thinking has evolved as a means of controlling the world at a level of fidelity once reserved for gods.
Computational thinking has changed how we look at the world. That is to be celebrated, and we should encourage non-programmers to understand how it works. But let’s not forget what it means to be human in this world.
- Are we falling into the “modelling the world in terms of current technology” trap? Yes, let us be self-aware of the limits of this thinking. We are assuming that evolution is computation on DNA, but it is only an abstraction – what if there is something wrong and it is not the correct model. BTW: Nick Bostrom and intelligence – I disagree that computation can create life, but lets explore it.
- How does new forms of teamwork (as with email) change our ability to solve problems? Not a sociologist, but fascinating that the same social structures show up in our imagined worlds. 10K years out? Don’t know, but some adaptation may have happened. No matter what, we need trust – the degree of trust forms the basis for any organization and what you can do with it. I believe that anything we do in this space is shaped by human need.
- What about genetic programming – will computers be able of compuational thinking? First off – computers write their own programs now, including manipulating their environment. But most of the stuff in neural networks is dealing with the perception side of the world, we can’t go meta on those neural networks. Second – is the mind computable? Yes, I believe it is, but see one of the computing documentary we are making.
- Can computing create art with meaning? Listen to the classical pianist Emily Howell, but Emily is an algorithm. Computers can create art, but we create our own meaning.
- Does outsourcing your brain to smartphones inhibit our ability to do computational thinking. See Sherry Turkle, it does change our brain, refactors it. It is a dance between us and our devices, and that will continue for a long time.
Recording will be at learning.acm.org/webinar.
Pingback: Sapiens unite! | Applied Abstractions