Computational thinking (CT) is a study of the problem-solving skills and tactics involved in writing or debugging software programs and applications.
Computational thinking is closely related to computer science, although it focuses primarily on the big-picture process of abstract thinking used in developing computational programs rather than on the study of specific programming languages. As a result, it often serves as an introduction to more in-depth computer science courses.
The Six Principles of Computational Thinking
While approaches to the study of computational thinking vary, there are six primary principles of computational thinking, which include:
1. Connecting Computing: Understanding the connection between computers and humans.
2. Developing Computational Artifacts: Creating an algorithmic or computational model and the techniques needed to create artifacts that can be applied toward solving problems.
3. Abstracting: Identifying and defining how information can be put to computational use, and modeling these abstractions in a computational context.
4. Analyzing Problems and Artifacts: Evaluating the merit and feasibility of potential solutions to a problem as well as identifying and resolving possible errors with the solutions.
5. Communicating: Effectively explaining the purpose and meaning of a problem and its potential computational solution(s).
6. Working Effectively in Teams: Active collaboration and contributions from multiple participants on problem solving as well as the development and execution of computational solutions.
Origins of the Term Computational Thinking
Seymour Papert first used the term computational thinking in 1996 when his “An exploration in the space of mathematics educations” was published in the International Journal of Computers for Mathematical Learning.
The science of computational thinking is primarily taught on the collegiate level, although in recent years it has entered the K-12 primary school levels as part of STEM focused education curriculums. Computational thinking classes were first introduced in 2005 at Carnegie Mellon University as a broad introduction to the field of computer science.