more about abstract structure than abstract methodology.” Jeannette Wing also added the qualifier that while similar to mathematical thinking in many respects, computational thinking does have to consider the physical constraints of the underlying computer (whether machine or human).
Paulo Blikstein highlighted that since both mathematics and computational thinking are tools for representation, there may be an opportunity to use computational thinking to represent complex processes and relationships in a more comprehensible manner than mathematics. One example he provided came from his observations of how engineering courses were taught. He immediately noticed that within a common engineering course, mathematical equations appear “approximately one every 2 minutes.” Blikstein added that often these equations are around 10 variables long, and insufficient time is allocated to actually explain the equations. He thinks that “this speaks to the failure of one particular way to think about knowledge and one way to represent knowledge, which is representing knowledge as differential equations and mathematical forms in general. … Computational representations might offer a lot of advantages over mathematical representations that we might be able to explore.”
Sussman gave an example of teaching students how to analyze electrical circuits. He noted that the typical pedagogical approach for this problem is to teach the node method—which in practice many students find difficult to implement in any practical way in solving problems in circuit theory. However, presenting students with a well-written computer program designed to solve such problems as an expert would enable them to internalize the program themselves and execute it much as that expert would.
Several workshop participants recognized an overlap between engineering and computational thinking. Even if it is not formally accepted in the engineering community, engineering schools are “doing a lot of computational thinking,” said Blikstein. Wing argued that both computational thinkers and engineers think about design, constraints, safety, performance, and efficiency. Design issues considered include “simplicity, elegance, usability, modifiability, maintainability, and cost. Wing said that “computational thinking is guided by particular concerns/constraints such as speed, space, and power [and computational thinking is] more like physics and engineering in this respect…. [It is] these kinds of concerns that determine how good an abstraction is. When we are defining abstractions, of course, it is very similar to engineering thinking.”
At the same time, computational thinking is unlike engineering. As Wing pointed out, “In software we can basically do anything; we can