Computer Science for All is a bold new initiative to empower all students from kindergarten through high school to learn computer science and be equipped with the computational thinking skills they need to be creators in the digital economy, not just consumers, and to be active citizens in our technology-driven world. Our economy is rapidly shifting, and both educators and business leaders are increasingly recognizing that computer science (CS) is a “new basic” skill necessary for economic opportunity and social mobility (CSforAll Consortium, csforall.org).
University of Washington, UW CSE News, June 2016
Computational Thinking (CT) in computer science refers to a problem solving process used by computer scientists. Jeannette Wing, a computer scientist, describes computational thinking as the thought processes involved in formulating a problem and expressing its solutions in a way that a computer can effectively carry it out (Wing 2014). Computational thinking concepts in K-12 include data collection, data analysis, data representation, problem decomposition, abstraction, algorithms and procedures, automation, parallelization, and simulation.
It is important to point out that computational thinking “shares elements with various other types of thinking such as algorithmic thinking, engineering thinking, and mathematical thinking (IWG 2010, as cited in Barr and Stephenson 2011). And while computer scientists acknowledge that many subjects teach problem solving skills, they believe that computer science often uses a particularly systematic and deep approach to thinking about complex problems, which they call computational thinking. In mathematics, some K-12 instructional materials outline the computational thinking practices that students should use to engage with computer science course content. Computational thinking and mathematical thinking are closely related, as both are involved with abstraction and reasoning with recognized simplified models. Computational literacy is a phrase that existed before computational thinking, and these two terms are sometimes used interchangeably.
Computational Thinking With Scratch: Developing fluency with computational concepts, practices, and perspectives