15 April 2022
This layer was inspired by a reading entitled “On the Way to Computational Thinking” by Berry & Fagerjord. Unfortunately, that reading is not available open source as it is a chapter from their book, Digital Humanities: Knowledge and Critique in a Digital Age. However, if you are interested in reading more about the origins and applications of Computational Thinking (CT), there are many free options available. As an academic field, CT is still quite young and many of its earliest articulations are available online. Perhaps the first and most important is “Computational Thinking” by Dr. Jeanette Wing. It is a very short and very readable essay that I highly recommend.
Computer science has long been misunderstood. Writing way back in 1993, Fellows and Parberry argued, “We need to do away with the myth that computer science is about computers. Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes, or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them and what we find out when we do.” Resolving this great misunderstanding can be expressed as follows:
Computer science is not the study of computers, but of computation.
“Computation” is such a master concept to all of computer science – and, I will argue, to all of thinking – that it is rarely ever discussed. However, understanding it is critical to my project in Computing Information Disorder, so I am going to spend some time examining it in this opening section.
In the plainest possible terms, a computation is simply a process that converts defined inputs into defined outputs. A “computer” is thus a device that carries out that process. Some computer scientists prefer to talk about “computing agents” rather than “computers” because, strictly speaking, a human is also a computer, meaning the human brain takes inputs, applies process, and produces outputs (Schneider & Gersting 10). This is counterintuitive to those of us who tend to think of our computer technology like this:
And while modern computer technology does rely on very complex computations, the principle of computation itself is simple. Computation should be thought of like this:
There are two important points that get obscured by this lack of precision in distinguishing between computations and the devices that perform them. First, it is humans who design the process that takes the inputs and generates the outputs; despite current debates over “artificial intelligence,” strictly speaking, it is still human brainpower that is doing the designing. Second, computation requires that we interpret the world through abstractions, meaning we have to convert experiences and observations into symbols that are then organized into a language which we can then use to produce outputs. This is true of human languages as well as programming languages. It is for these two reasons that I prefer the definition of CT given by Denning and Tedre (4):
“Computational thinking is the mental skills and practices for designing computations that get computers to do jobs for us and explaining and interpreting the world as a complex of information processes.”
This definition is a little clunky in its articulation, but it highlights the two components of computation.
First, there is the design element, perhaps the more obvious of the two components. Most people understand that computation is pursued scientifically in order to ultimately engineer hardware and software that will perform computations for us. Not only will our machines execute these computations on our behalf, but they will also execute them at a speed and scale and with an error-free consistency the human brain could never hope to achieve. I will call this the practical side of computation. It cannot be overstated how important this process of automating solutions to problems is to CT. As Berry and Fagerjord observe, "automation is at the core of computing" (43).
The second component is so not obvious that many computer programmers and scientists never even notice it. That is, computation requires “explaining and interpreting the world as a complex of information processes.” I will call this the theoretical side of computation. To automate solutions to problems, a computer not only requires hardware and software, it requires an epistemology that can be automated. Jeanette Wing, probably the most important academic to analyze CT, provides a nice encapsulation of this theoretical side when she describes CT as a kind of abstract thinking skillset that can be understood as “the thought processes involved in formulating problems so that the solutions are represented in a form that can be effectively carried out by an information-processing agent” (quoted in Berry and Fagerjord 42).
Because CT has these two sides, the practical and the theoretical, it is very hard to describe using traditional categories. Is it an academic discipline or a technical trade? A science or an art? Something one studies or an activity one performs? CT is all of these things because at its essence CT is a never-ending dialogue between theory and practice. That dialogue is captured in this statement by the Information Technology Advisory Committee to the President of the United States: “Together with theory and experimentation, computational science now constitutes the ‘third pillar’ of scientific inquiry” (Report to the President 13).
For the purposes of this Computing Information Disorder project, I have taken several of the core concepts in CT and created a computational framework that will hopefully one day enable the democratic world to theorize and experiment with automated solutions to combatting Information Disorder. I call that framework the CT Cycle and that is what will be discussed next.