What is Computational Thinking?
Image by Derrick Coetzee on Flickr
While computers think in rigid predictable patterns, learning computational thinking helps us understand how and why computers work.
One of the topics covered by this magazine is computational thinking. You might wonder what that is. Or you might think it means acting like a computer. Or you might think it was boring.
You’d be wrong on all counts.
Computational thinking is a structured way to solve problems. As described by Jeannette Wing, PhD, in 2006, computational thinking has these qualities:
- Conceptualizing, not programming — Basically, computer science is NOT computer programming. Coding is simply one expression, and a limited one, of computer science concepts and problems.
- Fundamental, not a rote skill — A rote skill is mechanical, something repeated over and over. Computers are brilliant at rote tasks. A fundamental skill is a skill every person needs to know (or should know) to participate in society.
- A way that humans, not computers, think — This is perhaps the neatest insight about computational thinking: it’s a way human beings think about the world and its problems and how we might solve those problems. Computers, in contrast, are more rigid and limited. Humans are clever and daring.
- Complements and combines mathematical and engineering thinking — Computational thinking includes math and engineering. It’s not a subset of either discipline. Computer scientists leverage math and engineering to develop solutions that may go beyond the limits of either way of thinking.
- Ideas, not artifacts — Computational thinking is not about output, a smartphone or the Watson computer. It’s the ideas that inform our technology and lead to their creation.
- For everyone, everywhere — Computational thinking is available to all people, whether they use technology or not, whether their solutions require technology or not.
Since Wing first presented her ideas in 2006, the definition of computational thinking has evolved. It now describes at least these activities:
- Analyze and organize data in logical ways.
- Model data, abstract ways of thinking about data, and simulations of data.
- Identify problems computers can help solve.
- Identify, test, then execute possible solutions to problems computers can help solve.
- Create automated solutions with algorithmic thinking and processes.
- Distill this process into ways to solve other problems.
Google and other groups offer lesson plans to let teachers and students explore these different aspects of computational thinking. For example, one Google lesson plan teaches n-grams in the course of creating a simple application to find spelling errors in a large amount of text.
However, computational thinking projects tend to use technology as a tool, not the project itself. People have to work through analysis and definitions of problems, organize proposed solutions, develop algorithms (rules) that lead to solutions, and test solutions. The emphasis is more on ideas, analysis, and process and less on artifacts and tools.
One Example: Ciphers
To give you a quick idea how computational thinking works, one small example has to do with ciphers. Creating and using a cipher involves substitution, rules (called algorithms) to encode and decode, patterns, and informed guesses, among other skills. Creating and cracking ciphers can be lots of fun and does not require computers to show how to do computational thinking.
Learn More
Computational Thinking
Jeannette Wing’s Viewpoint article published in the March 2006 issue of the Communication of the ACM magazine.
http://www.cs.cmu.edu/~wing/publications/Wing06.pdf
Computer Science Teachers Association (CSTA) Computational Thinking
http://csta.acm.org/Curriculum/sub/CompThinking.html
International Society for Technology in Education (ISTE) Computational Thinking Resources
http://www.iste.org/learn/computational-thinking
Exploring Computational Thinking (Google)
http://www.google.com/edu/computational-thinking/lessons.html
Examples of Computational Thinking in the K-12 Experience
Computational Thinking (Wikipedia)
https://en.wikipedia.org/wiki/Computational_thinking
Scalable Game Design and Computational Thinking
http://sgd.cs.colorado.edu/wiki/Computational_thinking
Scalable Game Design and the Development of a Checklist for Getting Computational Thinking into Public Schools
http://www.cs.colorado.edu/~ralex/papers/PDF/SIGCSE10-repenning.pdf
Computational Thinking for Kids (Institute for Mathematics and Computer Science)
http://www.eimacs.com/blog/2012/04/computational-thinking-for-kids/
Computer Science for the Rest of Us
http://www.nytimes.com/2012/04/01/business/computer-science-for-non-majors-takes-many-forms.html
Also In The May 2014 Issue

Computer Science Unplugged
The Computer Science Unplugged movement introduces non-technical people to computer hardware and software concepts that drive the technologies we use.

What is Computational Thinking?
While computers think in rigid predictable patterns, learning computational thinking helps us understand how and why computers work.

CAPTCHA
We've all used Captchas and found some impossible to solve. Here's why they exist, how they work, and less frustrating alternatives.

Data Types
Programming languages use data types to allocate memory and enforce data integrity. They also reveal the nature of a language.

Lauren Ipsum
If the idea of a computer science book without computers upsets you, please close your eyes until you've finished reading.

The Turing Test
The Turing Test, and its creator Alan Turing, have had a profound effect on computer science and artificial intelligence.
If debugging is the process of removing software bugs, then programming must be the process of putting them in.

May 2014 Learn More Links
Links from the bottom of all the May 2014 articles, collected in one place for you to print, share, or bookmark.

Fortran
One of two key programming languages (Lisp is the other), FORTRAN defined many of the key ideas used in programming languages.

May 2014 News Wire
Interesting stories about computer science, software programming, and technology for the month of April 2014.

How to Create (and Crack) Secret Codes and Ciphers
Secret codes, or ciphers, are a great way to teach computational thinking.

Grace Hopper
One of the first female programmers, Grace Hopper also worked as a mathematician and had an unusual career for women in the 1900s.

BOGONs
Bogons are not an evil race of aliens. But they do shine a light on one part of the internet little known outside of a few security technologists.