Why Computational Thinking is useful for everyone

This post was one hour late—I’m terribly sorry about that. the 7 and 8 keys (for “publish at 17:00”) are right next to each other.


Computational thinking is the practice of using Computer Science fundamentals to systematically solve large, real-world problems. Those fundamentals include identifying the real problems to be solved, breaking them down into manageable portions (by identifying what conditions need to be met for the problems to be considered ‘solved’), identifying the most efficient solutions to meet those conditions, and then implementing your solutions.

For a bit of a personal example, I’ve recently dealt with a real-world problem, which you might be able to relate to: I have midterms next week. On top of that, I have all sorts of other things I’m involved in, which I can’t just drop.

A graphic depiction of the dream layers from movie Inception

Getting to the root of a problem can feel like this sometimes.

In this case, identifying the ‘real’ problems meant asking myself why I was stressed. Getting to the root of this meant using the Engineering principle of asking why five times, or Problem Analysis. So:

  • I feel stressed because I feel like I have too much to do
  • I feel like I have too much to do because I have not yet organized my time
  • I have not yet organized my time because I have not made time to do it
  • I have not made time to organize my time because I feel stressed.

As is common in emotional issues, this one was circular. So the first step was for me to just get over it, and organize my time. I realize I didn’t take this asking process five steps in; sometimes you don’t have to.

My main point here: if you have a lot to do, organize your time. I kept those answers fairly general so hopefully you can relate—if you’re stressed out.

Since time-organization is my main problem at hand, I simply have to come up with a solution which satisfies all requirements:

  • Read My Literature-Class Story and write a short paper on it by Thursday (300 pages; 3-5 pages)
  • Study for Tuesday’s Science exam (six chapters)
  • Study for Thursday’s Language oral exam (two lessons)
  • Make it to today’s club meeting, and the one next Monday
  • Make it to the gym three times by Thursday (optional but preferred)
  • Sleep enough to stay sane
  • Eat enough to stay alive
  • Publish blog posts on Monday and Wednesday of next week.

Edited to keep things general, since you don’t care what book I’m reading or how long it really is—longer than that ;). To apply computational thinking to real life, you’d also have to include other things, like commute time, getting ready in the morning, mealtime, and so forth. Don’t forget mealtime.

If you wanted to be extra thorough, you could break your problems down even more. For example:

  • I can’t finish reading that book in time.
  • I can’t finish it in time because I read too slowly.
  • I read too slowly because I do not speed read.
  • I do not read actively because I am distracted, and because I don’t know how to speed read.
  • I am distracted because of the noise. I don’t know how to speed read because I haven’t learned yet.

This leaves you two problems to solve: fix the noise, and learn to speed read (check out this speed-reading link too; scroll down to the top-ten list at the bottom).

You can continue this process with every problem you have.

The next step could be to do something like writing your activities onto note cards as chunks of time, and shuffling them around on a table to organize what you need to do. But because we have things like Google Calendars nowadays, you don’t need to. If you can combine two activities (bike at the gym and read your book!) then do so, to save time.

And really. Don’t forget to eat. Happy midterms!