Monday, July 11, 2011

Computational Thinking

I first heard this concept during David De Roure's talk at the the Bloomsbury Conference (see Blog entry for 3 July 2011) and want to take this opportunity to define computational thinking for the sake of my students and to apply it to digital archiving (and related projects).

Definition
“Computational thinking” is (at least in my definition) processing information the way a computer processes it with the existing tools and systems. These tools and systems change over time and computational thinking has to shift over time as well. At present it implies some understanding of, for example, how to use regular expressions to identify specific text strings and how to search indexed information to find matches. Computational thinking tends to be literal (this string with this specification at this time) and tends to be unforgiving (there is no accidental recognition of what the author really meant). Computational thinking is what students ideally learn in their first computer programming class. The “born digital” generation has no advantage here and perhaps even a disadvantage, since they did not have think computationally when they first interacted with computers.

Computational Thinking and Archiving
In class I talked with students about the differences between the implicit definitions of integrity and authenticity in the analog and digital worlds. One of my favorite examples is a marginal note in a book. While we as librarians tend to discourage readers from marking in library books, we would not throw out a book as irreparably damaged because of a marginal note. A marginal note by a famous author can even add value (the Cornell CLASS project is an example). In the digital archiving world, however, we judge integrity by check-sums and hash-values. We do not look at the content, but at whether two or more check-sums agree with each other. Since a marginal comment changes the check-sums of (for example) a PDF file, we would replace that copy in a LOCKSS archive.

If readers wanted to add a marginal comment to a file without changing its integrity (that is, its check-sum), then they could add the comment external to the file with a mechanism (search or index) to locate where it belongs in the original file. This is not necessarily trivial, but is certainly doable as long as content is not regarded as a single file, but as a set of interacting resources. Merely thinking about this choice is computational thinking.

Computational Thinking and digital cultural migration
Computational thinking is needed in order to recognize content that may not be readily comprehensible in future eras. These are words or phrases that will likely be obscure to future (human) readers, but the machine needs specific rules to follow. For example the city of New York is likely to remain familiar in 100 years, but Saigon (now Ho-Chi-Min City) may well be hard for ordinary readers to recognize, unless the name changes back, in which case readers may need help with Ho-Chi-Min City instead.

Of course computational thinking may change substantially when natural speech recognition improves to the point that computer-based comprehension is not fundamentally worse than human comprehension. Or it may require a different type of computational thinking. Any assumptions will likely err in some direction.

3 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. "Of course computational thinking may change substantially when natural speech recognition improves to the point that computer-based comprehension is not fundamentally worse than human comprehension. Or it may require a different type of computational thinking. Any assumptions will likely err in some direction."

    The point that what we currently regard as computational thinking could change in the future is very important in my opinion. In our current view, technology drives a "new" way of thinking, rather than a new way of thinking shaping how we develop, implement and interact with technology (see Kevin Kelly's "What technology wants" for an illustration of this view).

    ReplyDelete