Computational Thinking
In 2006, Jeanette Wing published a number of papers arguing Computational Thinking  problemsolving approaches utilizing the power of compututers  were increasingly a fundamental skill needed by all students. She built her case on the recognition of the transformative effect computing technology and computational approaches were having on all disciplines in the late 20th and early 21st century (and not just the STEM fields)^{1}. This helped inspire a national push to incorporate computational thinking into K12 education as a new fundamental skill.
But what exactly is computational thinking? Essentially, it is solving problems like a computer scientist would. Typically this would mean studying a problem, then developing a program that can be run on a computer to solve it. Thus, computational thinking and programming are intractably linked, as one of the primary tools a computer scientist uses to solve problems is a programming language. But programming itself is not equivalent to computational thinking, no more than addition and subtraction are equivalent to mathematics, rather, programming is a tool utilized in computational thinking to express a problemsolving approach, much like addition and subtraction are used in mathematical equations. The ISTE and CSTA have developed an “Operational Definition of Computational Thinking for K12 Education”^{2} that can be useful for an aspiring teacher:
Computational thinking (CT) is a problemsolving process that includes (but is not limited to) the following characteristics:
 Formulating problems in a way that enables us to use a computer and other tools to help solve them.
 Logically organizing and analyzing data
 Representing data through abstractions such as models and simulations
 Automating solutions through algorithmic thinking (a series of ordered steps)
 Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
 Generalizing and transferring this problem solving process to a wide variety of problems
These skills are supported and enhanced by a number of dispositions or attitudes that are essential dimensions of CT. These dispositions or attitudes include:
 Confidence in dealing with complexity
 Persistence in working with difficult problems
 Tolerance for ambiguity
 The ability to deal with open ended problems
 The ability to communicate and work with others to achieve a common goal or solution
Note that much of computational thinking is not specific to computer science  many are skills and dispositions used across multiple discipines. But an overreaching aspect of computational thinking is that how problems are formulated, data is organized, and models and simulations are represented are explicitly tied to the computer we are using to solve them.

Wing, Jeanette, “Computational Thinking”, Communications of the ACM, March 2006/Vol. 49, No. 3 ↩︎

ISTE and CSTA, 2011. “Operational Definition of Computational Thinking for K12 Education” ↩︎