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