Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer—human or machine—can effectively carry out.
Wing, Jeannette (2014). “Computational Thinking Benefits Society”. 40th Anniversary Blog of Social Issues in Computing.
There are many definitions for the concept of “Computational Thinking”. I like the above because it addresses more than writing a Scratch program that you see as the definition and result from some places. Don’t get me started.
It also honours the fact that the solution might be human or machine solved. Not specifically stated, are the notions that we often deal with algorithms and that there might be more than one way to solve a problem.
Here’s a great example.
I think we all have used Google Maps or Bing Maps to get driving instructions. If there was one answer, you’d expect to get it no matter the program. That’s typically not the case. For a heady read, check out this Wikipedia article.
So, I put things to a test. I asked both map programs to take me from the Yonge and Bloor intersection to The Old Mill in Blyth Ontario. Here’s how these two popular services would do it.
It’s interesting to note that, once they get out of the Big Smoke, there really are only a few ways to go cross country without a bunch of turns.
What’s interesting is how they get out of Toronto. Bing would have you head north immediately and use Allen Road to get to the 401 or 410. Google actually takes you east and then down the Don Valley Parkway to the Gardiner and then to the 401 or 410. The difference is in the algorithm and the thinking involved in implementation. For the record, Open Street Map gave the same route as Google did.
Could you do something like this in school? I think so. (Because I did)
Let’s forget a computer solution for a minute because it gets very deep in a hurry. Let’s look for the human solution. Suppose every student either walks or rides a bike to school. How do they get there? What route do they take?
By the time you try this, the path will be engrained in their mind so let’s change the game a bit. Suppose a new student arrived in your community and wants advice about how to get to school. Now, it gets interesting. Of course, they’ll want to get to school as quickly as possible. Take a map of the community and pin the school and the new student’s house. How do they get there? It’s an interesting activity. (unless they’re bused which leads us to a different talk) If the walking or biking distance is far enough, you’ll be open to more than one answer.
What would Bing or Google do? Of course, you know the answer, drop a couple of pins and ask for directions.
A computer solution is a big more challenging but can be done. A problem that I gave my Grade 12 students went along these lines.
Fortunately, Lasalle where the school was located was mostly laid out on a grid although some roads didn’t always go through. But that was OK; it made the problem interesting. What we did was create a big matrix (2D array) and marked intersections as open or closed. We had a starting point quite a way from the school at cell (0, 0) and the school was located at (20, 20). The goal was to create an efficient algorithm to walk through the array as quickly as possible. It wasn’t trivial, but like Bing, Open Street Map, and Google, as soon as you could get to a major road, it was smooth sailing.
Of course, you could make it even more like real life with one-way streets, cross walks, bridges, and points of interest. For example, I only lived a few blocks from school and could be there in five minutes. But, there was a bakery downtown that put out its day olds right after school. Going home was a different route for sure.