Rethinking Computational Thinking

Over the past 18 months, I’ve had the opportunity to be part a team led by Joyce Malyn-Smith of EDC for her NSF grant, Computational Thinking from a Disciplinary Perspective. The project was inspired by earlier work that Joyce conducted with Irene Lee. (Irene is the creator of the Project GUTS curriculum for learning science and computational thinking via modeling and simulation).

In their work, Joyce and Irene interviewed a variety of practicing scientists to reveal how they used computing to do science. Through these interviews, they elaborated a variety of practices which include profound and creative uses of computing, often invented by the scientists themselves.

Since the publication of Jeannette Wing’s 2006 paper on computational thinking, our community has been engaged in a sense-making process: what exactly is it? The initial description of “thinking like a computer scientist” is a bit tautological—and not terribly helpful for someone who isn’t already a computer scientist.

I have personally been struggling with understanding the relationships among the broad categories of computer science, programming, and computational thinking. For example:

Q. Can you do computer science without programming?
A: Yes of course; we can analyze the complexity of a search algorithm, realize the need to use hashing to speed a table-lookup, etc.

Q. Can you do programming without computer science?
A. Probably. Beginners’ spaghetti code might be an example. “Hacking” in general suggests building things without an underlying theory (though there may be an implicit one). But let’s say yes to this too.

So, where does CT fit in? Is it in the intersection? Many people think you can do CT without doing programming, so perhaps not. How is CT not just another word for computer science then?

Venn diagram of programming and CS. Where does CT fit?

Venn diagram of programming and CS. Where does CT fit?

Jeannette Wing’s more recent paper (2011) provided this definition of CT: “Computational thinking is the [human] thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent [a computer].”

To me, this still sounds like “thinking like a computer scientist.” This is what we do! We formulate problems and their solutions so that a computer can carry them out!

So what’s the difference between doing CT and doing computer science?

Thanks to my collaboration with Joyce and Irene (and our whole team), I now see an answer.

Computational thinking is about connecting computing to things in the real world.

Here are some examples.

A starter program we may often have our students write is to model a checking account. Our students will use a variable to represent the bank balance, and build transactions like deposits and withdrawals. Maybe they’ll represent the idea of an overdraft, or insufficient funds.

Let me argue that this simple example captures the essence of computational thinking.

What makes it so is that we are connecting a concept in the world—money in a bank account—to its representation in a computational system. This sounds pretty simple. But there is surprising complexity. What sort of numerics should we use—e.g., should we represent fractional pennies? For a beginning student, we could ignore this. But in a more elaborated solution, this intersection of computational considerations and real-world concerns is crucial—and this is computational thinking.

Here is another example. Consider how we usually represent colors. We use three bytes of information: 0 to 255 amounts of red, green, and blue (RGB) light. For web HTML, we’d use the hexadecimal notation. For example, #8020C0 is 128 (decimal) of red, 32 (decimal) of green, and 192 (decimal) of blue, or this color:

A purple swatch which is #8020C0.

A purple swatch which is #8020C0.

This RGB representation was created at the intersection of the neurophysiology of human vision, the physics of how we build displays, and practical considerations of computing. Why do we mix only these three wavelengths of light? Because the way our eyes and brains work, we can mimic practically any color with just these three. Why use just one byte of information for each color intensity? It turns out the ~16 million colors which can be represented this way is quite powerful—and good enough—for how we use computers now.

So the whole notion of the RGB representation of color is computational thinking in action.

For a more elaborated example, let’s consider the JPEG file format—of the Joint Photographic Experts Group. This team included computer scientists, neurophysiologists, and artists. Their insight was that we could compress images by a factor of ten or more by discarding information that the human eye doesn’t see anyway. What a fabulous insight—and the very essence of computational thinking, because it connects concepts in computing (like compression algorithms) to understandings of our physical and perceptual worlds.

To revise our illustration, now CT is the “connecting tissue” between the world of computer science / programming expertise and the world of disciplinary knowledge:

Visualization of CT as “connecting tissue” between CS/programming and disciplinary knowledge of the world

Visualization of CT as “connecting tissue” between CS/programming and disciplinary knowledge of the world

To “do CT,” you need to know about both worlds. You need to know how to create solutions using computing. You need to know something about a domain in the world. And CT is the knowledge, skills set, and disposition of intermediating between these two.

Now, Jeannette Wing’s 2011 definition makes perfect sense: “Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent.”

Yes! The key is recognizing that there is a non-computational domain—something in the world that we care about—which is being transformed (represented computationally) in this process.

To close the loop back to Joyce’s project: In addition to myself and Irene Lee, Joyce’s team had project advisers Michael Evans and Shuchi Grover, her EDC colleagues Paul Goldenberg, Lynn Goldsmith, Marian Pasquale, Sarita Pillai, and Kevin Waterman, and project evaluator David Reider.

In a series of planning meetings and then a pair of 2-day workshops with K-12 CS practitioners and researchers from around the country, we developed the idea of how computational thinking is transformed by connecting it to scientific disciplinary practice.

We created a framework with a set of five “elements” which illustrate the integration of computational thinking into disciplinary understanding.

Please stay tuned for work to come from our group, presenting this idea of “Computational Thinking From a Disciplinary Perspective.”

It’s given me a whole new way to think about what computational thinking can mean.

It’s about connecting computing to the world.

head shot of Fred Martin, chair of board of directors

Fred Martin, chair of board of directors

Just released: Video interviews on computational thinking

What is computational thinking?

How is computational thinking distinct from other thinking skills?

How can teachers assess computational thinking skills?

Have you ever wanted to ask an expert these questions? The CSTA Computational Thinking Task Force is creating a series of video interviews in which we do just that!

Listen in on our conversation with Chris Stephenson, Director of Computer Science Education Programs at Google, as she answers our questions and describes cross curricular computational thinking applications in the task of preserving native languages (

Listen to our conversation with Eric Snow, Education Researcher in the Center for Technology in Learning at SRI International as he answers our questions and describes his research in assessing computational thinking (

We have several more interviews with experts in the field planned for later this fall.

All of the interviews are archived here:

Computational Thinking — What does it mean to you?

How do you integrate computational thinking (CT) concepts and strategies into your teaching? Have you heard your colleagues talk about it and wondered if they have accurate and useful understandings of how CT can be used across the curriculum? Are you curious about how other schools, or even other countries, are implementing CT strategies? Wondering where you can get more information?
Well, consider the March issue of the CSTA Voice as your CT 101 Primer! Take a look and then let us know what you’re thinking about the topic.

  • Take a step back to the conceptual foundations of CT with a review of the “roots of CT” with Irene Lee, Co-chair of the CSTA CT Task Force.
  • Discover how England is embedding CT into the national computing curriculum with John Woollard, leading member of Computing At School (CAS).
  • Compare the problem-framing strategies that help students connect math to everyday problems with MEAs (Model-Eliciting Activity) to CT strategies with Fred G. Martin, Co-chair of the CSTA CT Task Force.
  • Explore the list of CT resources gathered by Joe Kmoch, CS consultant and retired educator.


  • VOTE! Read the statements from the 10 candidates running for the 5 open seats on the CSTA Board of Directors in the March Voice. The affairs and property of the Organization are managed, controlled, and directed by a Board of Directors elected by you. A huge amount of work through committees and task forces is also completed by these Board members.
  • REGISTER for the 2016 CSTA Conference. Read more about the plans for “Making Waves in San Diego” in the March Voice.

Pat Phillips, Editor
CSTA Voice

A review of Google’s Exploring Computational Thinking resources

By Joe Kmoch

In Spring 2015, Google began work on revamping their CT website. Their materials are available at a website called Exploring Computational Thinking:

A team at Google developed a template for lessons which would be made available on their site. They took the large number of lessons that were already on their site and rewrote them into this new lesson plan format. They hired a group of educators to review all of those lessons and now have about 130 lessons and other materials available.

These lessons have specific plans, are interactive and inquiry-based, and include additional resources. There are lessons in 17 subject areas mostly in math and the sciences. These lessons are also cross-referenced to various sets of international standards (Common Core, NGSS, CSTA K-12, and standards from UK, Australia, New Zealand and Israel).

At about the same time, another Google team developed a group of six videos called CT@Google which focus on the Seven Big Ideas from the CS Principles course, and how Google uses them in their work.

Finally, Google developed an interactive, online course, CT for Educators, where teachers learn what CT is and how it can be integrated into a variety of subject areas. It is quite good and can help a teacher work CT concepts into their regular lessons:

All of these are quality resources.


Disclosure: the author was compensated by Google for assistance in editing the collection of lesson plans mentioned in this article.

Designing Thinking in K-12

During my recent trip to India, I visited the American Embassy School (AES) in New Delhi. During my visit, I was able to talk to the members of the technology integration team and how they are combining design thinking, computational thinking, and maker space ideas to allow students to become creative users of computing technologies. More on AES tech vision can be read here. While computational thinking in K-12 schools has gotten a lot of attention, design thinking has the potential to further enhance students’ creative problem solving.

The Institute of Design ( at Stanford University offers a virtual crash course that exposes learners to the five aspects of design thinking: empathize, define, ideate, prototype, and test. Teachers interested in learning more about how to embed design thinking in their K-12 classroom can find more resources on the’s K12 lab network wiki.

CSTA Computational Thinking (CT) Task Force

Why was the Computational Thinking (CT) Task Force formed?

One of the primary purposes of the CSTA is to support K-12 CS educators. Thus, it’s important that the CSTA be aware of current developments in computer science education, including Computational Thinking (CT), so we can take advantage of new opportunities and new partnerships. The CT Task Force was formed to advise the organization about how to connect with and respond to new Computational Thinking initiatives.

Who are the members of the CT Task Force?

In July 2014, the CT Task Force re-assembled with these members:

Irene Lee, Chair (Santa Fe Institute, Project GUTS)
Fred Martin, Co-Chair (University of Massachusetts Lowell)
J. Philip East (University of Northern Iowa)
Diana Franklin (University of California, Santa Barbara)
Shuchi Grover (Stanford University)
Roxana Hadad (Northeastern Illinois University)
Joe Kmoch (University of Wisconsin-Milwaukee)
Michelle Lagos (American School of Tegucigalpa)
Eric Snow (SRI International)

What does the CT Task Force do?

This year, we are focusing on CT in K-8 teaching and learning. This is a pressing need, and we would like to understand the scope of what is being called “computational thinking” in K-8: how it is being defined, what tools and curricula are being used to teach computational thinking, and how it is being assessed. Task Force members also participate on related efforts, such as developing proposals for providing professional development in CT through the CSTA.

How does the CT Task Force serve the CSTA membership?

We serve the membership by:

1) Writing, publishing and disseminating papers on CT

2) Coordinating efforts to inform K-8 educators about CT

3) Making presentations on CT at educational conferences

4) Updating the CT webpage on the CSTA website

We welcome suggestions and contributions from the CSTA membership on ways the CT Task Force can better serve you.

Computational Thinking and Beyond

Since Jeannette Wing described computational thinking (CT) in her 2006 Communications of the ACM article, it has gone beyond computer science and now become a “hot topic” within educational technology communities of practice. A quick search for the keywords “computational thinking” in education conference proceedings, such as Society of Information Technology and Teacher Education, E-Learn, American Educational Research Association among others yields a growing number of papers on CT. The ideas presented range from computational thinking for teacher education to incorporating computational thinking for students in a wide array of content areas including science, mathematics, and language arts. Educators and researchers in educational technology have started adopting CT and are extending it beyond computer science to creativity and problem solving. As an example, teachers attending our Masters in Educational Technology program at Michigan State University have deep interest in computational thinking and how to expose their students to algorithmic thinking, data representation, and logical thinking across. These teachers are incorporating CT practices by exploring Maker Education (#makered) approaches that allow their students to tinker and play with tools (such as, MakeyMakey, Raspberry Pi, Paper Circuits, etc.). Through these projects students (and teachers) are developing core computational thinking dispositions that Valerie Barr and Chris Stephenson identified in their 2011 article on bringing computational thinking to K-12. Specifically, students in these classrooms are learning to work with “wicked problems” that are open-ended, complex, and often have more than one solution and multiple ways to arrive that the solution. The interest in computational thinking from teachers across disciplines provides opportunities for computer science educators to collaborate with fellow educators to show students how computational thinking ideas span subjects and overlap with core computer science concepts.

Aman Yadav
Twitter: @yadavaman
Teacher Education Representative
CSTA Board of Directors


What Do You Need to Know About Computational Thinking?

The theme of the May CSTA Voice is “Computational Thinking.” As I thought about what to include in this upcoming issue and reviewed some of the past CT work by people such as Jeannette Wing and Joan Peckham, as well Valerie Barr who leads the CSTA Computational Thinking Task Force, I realized that a lot has changed in the past four years during which I have been thinking about CT.
There are new analogies for trying to conceptualize CT, new reasons for its value, new strategies for including CT into course curriculum, and new ideas for engaging the teachers of other disciplines in our schools in the task of including CT in their classroom activities. A lot of attention is now being paid to CT in universities and professional computer science organizations. I don’t think CT is going away and I think as CS & IT professionals we ought to be informed to a level that we can talk about CT with our peers and make sound decisions about why and how to include CT strategies in our teaching strategies.
The missing piece in my plan for the May CSTA Voice is:
What do you, CSTA members, need and want to know about CT that will enable you to better prepare your students for the intellectual realities of their lives, and to help your colleagues better understand (and ultimately incorporate) CT into their classroom lessons across diverse subject areas.
Do you have questions about CT that I can call upon experts to help answer?
Are you curious about how CT will impact CS & IT courses?
Is CT a new topic for you and do you need a basic CT lesson?
Have colleagues asked you about CT and do you need essential details that you can share to help them better understand the concept?
What do you want to learn about in the May issue of the CSTA Voice?
Please let me know. Let me see what I can find to help us better understand computational thinking.
Pat Phillips
Editor, CSTA Voice

Algorithmic Thinking and Computational Linguistics

The Algorithms and Linguistics page ( on The FIRE Project website is a site that introduces younger students to computer science and linguistics. Rather than focusing on programming, the website focuses on algorithmic thinking and problem-solving to engage students in computational thinking.
The goal is create unplugged materials, or problems solvable with pencil and paper, where students can practice using computer science and linguistics concepts.
Currently on the website there are algorithms and linguistics problems of varying difficulties so that a range of age groups can enjoy them.
Chelsea Mafrica
The Algorithms and Linguistics Team

Real (ish) Life Computational Thinking

I went to see the most delightful talk this week, given by a graduate student. Like many academic talks, the speaker outlined a problem, described similar research and attempts at solutions, which have all failed, then argued for a new solution that he has done research on. The format, obviously, is not what was delightful, instead it was two other features of the talk.
First, the problem: “The dirty dish dilemma.” Our young grad student has lived for many years in communal houses. The policy is “clean your own dishes.” But sometimes dishes get left in the sink! Like the broken windows theory of crime, soon it snowballs into a sink full of dirty dishes and a lot of unhappy housemates.
When was the last time you went to a talk about something you actually found entertaining? This is so much better than the problem of writing across the curriculum or differentiated instruction! (And truly, I think life at most schools would be more improved by 30 minutes on solving the dirty dishes in the staff room sink than by 30 minutes on curricular reform.)
The second delightful part was his research method. It would be hard to go out to lots of communal houses, try different solutions, see which ones worked and then test the “working” solutions at other houses to make sure they really work. But it is easy to download NetLogo and create a model of dirty dishes, including the people who wash and dirty the dishes. And it’s very easy to modify the model once you create it – varying how slobbish the people are, trying different solutions, adding or removing constraints (like when Mom gets fed up and yells and all the dishes get washed at once). It was the most realistic example of the use of computational thinking I’ve seen, and at no time in the talk did the speaker use the phrase computational thinking, nor did he even appear to know that’s what he was doing.
Incidentally, the solution is to change the policy to one of small altruism. Instead of “do your own dishes” the policy should be “do your own dishes plus one other dish. Then no one gets stuck having to clean up after everyone else just because their prep period is right after lunch.
Michelle Hutton
CSTA President