Computation and Computational Thinking
Aho (2012): Computation and Computational Thinking
The motivation for this paper is the "confusion" that is generated by "[u]sing the term 'computation' without qualification", which is why the author suggests "to use the term in conjunction with a well-defined model of computation whose semantics is clear and which matches the problem being investigated".
We consider computational thinking to be the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms. An important part of this process is finding appropriate models of computation with which to formulate the problem and derive its solutions. A familiar example would be the use of finite automata to solve string pattern matching problems. [...] However, as the computer systems we wish to build become more complex and as we apply computer science abstractions to new problem domains, we discover that we do not always have the appropriate models to devise solutions. In these cases, computational thinking becomes a research activity that includes inventing appropriate new models of computation.
This is related to systems biology because:
Corrado Priami and his colleagues at the Centre for Computational and Systems Biology in Trento, Italy have been using process calculi as a model of computation to create programming languages to simulate biological processes. Priami states the basic feature of computational thinking is abstraction of reality in such a way that the neglected details in the model make it executable by a machine.
Also, the author writes:
[T]here is increasing interest in applying computation to studying virtually all areas of human endeavor. One fascinating example is simulating the highly parallel biological processes found in human cells and organs for the purposes of understanding disease and drug design. Good computational models for biological processes are still in their infancy. And it is not clear we will ever be able to find a computational model for the human brain that would account for emergent phenomena such as consciousness or intelligence.
A chapter on the "theory of computation", which is "one of the core areas of computer science" and "explores the fundamental capabilities and limitations of models of computation", follows.
A model of computation is a mathematical abstraction of a computing system. The most important model of sequential computation studied in computer science is the Turing machine[.]
The author then explains in detail how a Turing machine works and justifies this with the following words:
The reason we went through this explanation is to point out how much detail is involved in precisely defining the term computation for the Turing machine, one of the simplest models of computation. It is not surprising, then, as we move to more complex models, the amount of effort needed to precisely formulate computation in terms of those models grows substantially.
Next, the author writes about "reactive systems". A reactive system is a system "that maintains an ongoing interaction with its environment", such as an operating system, an embedded system - or a biological system:
Perhaps the most intriguing examples of reactive distributed computing systems are biological systems such as cells and organisms. We could even consider the human brain to be a biological computing system. Formulation of appropriate models of computation for understanding biological processes is a formidable scientific challenge in the intersection of biology and computer science.
Without providing really concrete examples, the author further states that "[i]n addition to aiding education and understanding, there are many practical benefits to having appropriate models of computation for the systems we are trying to build", and concludes:
Useful models of computation for solving problems arising in sequential computation can range from simple finite-state machines to Turing-complete models such as random access machines. Useful models of concurrent computation for solving problems arising in the design and analysis of complex distributed systems are still a subject of current research.
A somewhat vague article that leaves many open questions.