beanz Magazine

What is Computational Thinking?

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

http://afterschoolconvening.itestlrc.edc.org/sites/afterschoolconvening.itestlrc.edc.org/files/Examples%20of%20Computational%20Thinking%20in%20the%20K-12%20Experience.pdf

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.