With substantial confusion left regarding the meaning, as well as the purpose, of Computational Thinking (CT), 15 years after Jeannette Wing's seminal Communications Viewpoint,7 two different schools of computational thought have emerged. In the more prominent school of thought—let's call it vocational education—the boundary between programming and CT is somewhat blurry. No doubt, the understanding of coding constructs is an essential part of CT education. However, if teaching and assessing CT is largely based on concepts such as loops, sequences, and conditional statements, then how is this fundamentally different from programming? The arguments for and against this school of thought are numerous but the most ubiquitous ones, at least in the U.S., appear to be career oriented and are grounded in predominantly economic justifications. Unfortunately, in the vocational school of computational thought the benefits of CT toward disciplines other than computer science are at best collateral.
Enter the second, less developed, school of computational thought focusing on general education. We will call this "Explicative Programming." In this school, programming may not be in the foreground, but it becomes an interdisciplinary instrument of thought to truly understand powerful ideas in typical K-12 disciplines such as STEM, art, language, and music. In the Explicative Programming school of computational thought, CT is about thinking with the computer. This idea is not new. In fact, it predates the Wing vision and can be traced back to Seymour Papert. Papert initially employed the term "Computational Thinking"3 to refer to a relation between problem disciplines and what he referred to as an explicative practice of programming.