Building the bridge between journalism and computer science

Computational Thinking in Journalism: Recently Asked Questions

My Poynter.org  essay on the need to foster comptational thinking in journalism has generated responses ranging from skeptical to intrigued. In this post,  I want to particularly respond to two of the questions and observations that have been raised.

I’ll take the comments at Poynter first. One commenter said that the essay should have been entitled, “Digital and Internet Tools Augment Analytical Thinking.”  This was my response:

Thanks for your comment. I don’t pretend to have a lock on this, and the responses help me refine my thoughts.

Your proposed title, “Digital and Internet Tools Augment Analytical Thinking” accurately describes some of the traditional ways in which journalists have used computing technologies. What I’m suggesting though, it that computational thinking can also help journalists conceive new tools, or new ways of applying existing tools.

This isn’t limited to the collection and presentation of editorial content. For example, Blogher, Inc. runs a Flickr RSS feed of member photos tagged “BlogHer” below the nameplate. It’s a design feature that reinforces their identity as an online community. That’s an example of computational thinking in design.

It’s largely a matter of understanding how to use the computing technologies in ways that are most effective in accomplishing your goals. Does that make sense?

Another Poynter commenter scoffed that the essay was “a mashup of every conceivable digital buzzword.”  She added,

Is ‘deconstructing algorithms’ some kind of code for managing searchablity?
Not sure why reasoning “abstractly” is a new goal – isn’t that a given?

The buzzword charge tells me I have to work a little harder at translating my thoughts.  I don’t know what “managing searchability” means, but I can tell you what I meant when I talked about deconstructing algorithms.  At a base level, I’m talking about having the computer literacy to understand that a search engine locates and categorizes information based on a set of rules.  If you understand the rules, you can do a better job of querying the search database and grouping the results.  For example, some search engines sort results on the basis of popularity, while others sort on the basis of some sort of credibility scheme.  Some search engines try to decipher the meaning of search terms and factor in other items that weren’t explicitly requested but might be related. These are called semantic search engines.

This has very practical implications for the editorial and business side of news organizations.  As writers and editors craft headlines and article text with the goal of search engine optimization in mind, the differences in search algorithms might require differernt search strategies.  This 2006 article comparing the Google, Yahoo and MSN’s search algorithms is instructive in that regard. This May, 2009 blog post discusses Google’s plan to change its search algorithm to make it harder for spammers to achieve high rankings. The bottom line is that these differences in algorithms can cause the same site to have different rankings on different search engines.

The search and ranking algorithms within sites also matter. A February 2009 article in from CNET reported the controversy engulfing Yelp, a website that posts customer reviews of businesses and services after a newspaper investigation disclosed charges that the company accepted bribes from businesses to delete negative reviews. According to the article, Yelp blames the problem on their algorithms.

There is also some debate about the biases that that may be inadvertantly reflected in sites using popularity to determine what content is promoted.  The arguments over sexism at digg.com is a prime example of this debate.

Finally, as to the question about “abstract thinking. ” Of course, teaching abstract thinking is one of the goals of college education in any discipline. However, the concept of abstraction has particular meaning in computer science.  It’s a way of grouping similar types of information or procedures in order to simplify a computing operation. This is part of what Adrian Holovaty was getting at in his 2006 blog post, “A fundamental way newspaper sites need to change,” when he urged journalists to learn to think in terms of structured data. Bambooweb explains the concept well:

“In software development, abstraction is the process of combining multiple smaller operations into a single unit that can be referred to by name. It is a technique to factor out details and ease use of code and data. It is by analogy with abstraction in mathematics. …

Abstraction can be either that of control or data. Roughly speaking, control abstraction is the abstraction of actions while data abstraction is that of data structures. Control abstraction, seen in structured programming, is use of subprograms and control flows. Data abstraction is primary motivation of introducing datatype and subsequently abstract data types.”

The concept of abstraction can be challenging for those of us who have not been trained in mathematics or computer sciencce.  Part of my challenge in this collection of writings it to help translate the concept in ways that those of us with more traditional journalism backgrounds can understand.