Computation does not equal computer science. While Computer Science is the study of computation for science and engineering, computational thinking can really be applied to any discipline. A basic example is when Shannon came up with a “mathematical theory of communication” to explore a new way of thinking about information processing. Thus, it is perhaps more useful to think of computation as a particular way of “reckoning” and “calculating” to solve problems.
The following are some of the (non-key) computing concepts I gleaned from the readings and my coding journey:
- Abstraction (conceptualizing)
- Time and space
The key concepts however surely make more sense to me now as a non-CS student, especially upon navigating through the Python tutorial on Code Academy. I recognized fundamental shifts in the way programming was allowing me to think. For example, I quickly realized how iterative the process of coding really is, when you could have communicated the same code to another human being in a much shorter time. It is now clear that while computation did begin as the process of doing mathematical calculations, over the years, computer scientists have found more broader things to compute other than arithmetic calculations. Therefore the modern computer works based on automatic calculations to alter “operating instructions”. This also led me to consider conceptual differences between human cognition and automatic computers. One of them is storage, or memory. Computers don’t seem to have as much of a hard time as humans to remember something, forever (until erased, of course).
The structural classification in a computer as a computational artifact, namely, hardware (material artifact), software (abstract artifact) and architecture (liminal artifact) greatly helps in comprehending the complexity of these systems. This also correlates to Charles Babbage’s ardent dream to replace both “muscle” and “minds”. In popular modern culture, computer science is almost seen as a mechanical, dehumanizing and “thinking like robots” pursuit, when it is really rooted in the humanities. Computational thinking is a way to study how humans can solve problems, not to think about how a computer can (although computers used to be people). As Dasgupta says, ‘it is both a concept and an activity historically associated with human thinking of certain kind.”
While computation is rooted in mathematics, we no longer use computers to solve arithmetic problems for us, we use them for a lot more. Computation thus does not deal with numbers, but symbols that stand for something else. Most importantly, the science in computer science is different what the normative conception of science. Computer science is the science of the artificial, to build material artifacts that perform more efficient computations than human beings, in a myriad vectors.
- Martin Campbell-Kelly, “Origin of Computing.” Scientific American 301, no. 3 (September 2009): 62–69.
- Introductory Video Lecture on Computational Thinking (Prof. Irvine, from “Key Concepts”)
- Jeannette Wing, Computational Thinking (Video)
- Jeannette Wing, “Computational Thinking.” Communications of the ACM 49, no. 3 (March 2006): 33–35.
- Denning and Martell, Great Principles of Computing, Chapters 4-6.
- Subrata Dasgupta, It Began with Babbage: The Genesis of Computer Science. Oxford, UK: Oxford University Press, 2014. Excerpts: Prologue and Chapter 1.