Friday, May 13, 2011

Teaching How to Think Computationally

One of my three main objectives for this year's "Introduction to Computers for Arts and Social Sciences" course is to teach the class how to think computationally.  It was a goal last year as well, but I did not attempt to articulate exactly what the concept of computational thinking actually meant to the students.  This year I dedicated some time to the concept during the introductory class.

Thinking RFID

The sources I found on Mark Guzdial's blog turned out to be quite useful in distilling what computational thinking really meant.  I had started making slides based on the most recent definition put forward by Jeannette Wing, as blogged by Mark.  I started my section with this quote:
Computational thinking enables you to bend computation to your needs. It is becoming the new literacy of the 21st century. 
I was going to use the points under "Computational thinking for everyone means being able to:" but in the end the text seemed better suited to educators than to students.

Luckily, I remembered that the latest issue of CSTA Voice focused on computational thinking.  The articles within were very useful and I ended up using their list of characteristics of being able to think computationally:

  • Formulating problems in a way that enables us to use a computer and other tools to help solve them;
  • Logically organizing and analyzing data;
  • Representing data through abstractions such as models and simulations;
  • Automating solutions through algorithmic thinking (a series of ordered steps);
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources; and
  • Generalizing and transferring this problem solving process to a wide variety of problems.
With a bit of an example for each of these, I think the students got the main idea.  I told them that learning some basic algorithms, how data is represented on the computer, and how to program in Scratch (all topics in our course) will get them thinking in this new way.

I observed in the next class how important trying to think this way would become for many of the students.  It turns out that even in Microsoft Word, they are used to entering straight text and never using anything that you might call "codes." For example, many still use the "enter-enter-enter..." method to get to a new page rather than a page break, and many didn't about the built-in cross-referencing, table of contents generator, or citation system.  Understanding how to make the computer make your life easier should be a huge benefit to them all.

Do you have any great resources for teaching students how to think computationally? How do you usually approach it? Have you found it hard to know whether you're actually succeeding?


Post a Comment

Comments are moderated - please be patient while I approve yours.