Peda(bot)gically Speaking: Teaching Computational and Data Journalism with Bots

How building news bots teaches two kinds of thinking

The school of the future, imagined for the 1900 World Exhibition in Paris. (Wikimedia Commons)

Bots can be useful little creatures for journalism. Not only because they help us automate tasks like alerting and filtering, but also because they encapsulate how data and computing can work together, in service of automated news. At the University of Maryland, where I’m a professor of journalism, my students are using the power of news bots to learn concepts and skills in computational journalism—including both editorial thinking and computational thinking.

What Bots Can Do for You

In my course on Computational Journalism, students design and build a news bot on Twitter as one of their projects. We start by brainstorming a variety of inputs, outputs, algorithms, and intents/functions of their bots. I provide a design framework (shown below) based on research on news bots in order to scaffold the thought process with some structure. Students then think about where they will get data to drive their bot, what the bot’s target output will look like, and how it will transform its input data to those outcomes.

All of this leads students to confront editorial questions like the newsworthiness of the bot, and the ways in which they can feasibly use automation to reach a variety of journalistic outcomes. They answer the question: What exactly can (or can’t) news bots accomplish?

Inputs Outputs Algorithms Intent / Function
Database /Archive Commentary Analyzing Accountability
Other Websites Geo-specific Augmenting Breaking News
RSS feeds Niche Curating / Aggregating Critique / Opinion
Other Tweets Topical Generating Discovery / Investigation
Tweet Replies Reacting / Responding Entertainment
Other Twitter Accounts Rebroadcasting Informing
Hashtags Service

The framework given to students as they begin designing their bots.

From Intent to Implementation

Earlier in the course I teach Python coding and Jupyter notebooks, and for this project I provide a skeleton bot implementation so students don’t get bogged down in minutiae and can focus their efforts on the editorial brain of the bot.

Besides practicing their coding skills, the implementation phase of the project teaches students to consider the limitations of automation, including whether the bot will have adequate access to the data it needs, if it will run in a reasonable amount of time, and if it will adhere to Twitter platform limits and conventions for automation.

By translating the high-level intent of the bot into concrete editorial rules like filters and thresholds, we demystify automation and underscore the idea that designers bake all kinds of values and goals into algorithmic systems.

The last bit of editorial thinking I teach for this project is how to apply the journalistic norm of transparency in this domain. The students are asked to write an algorithmic transparency disclosure about the bot. The process of writing this disclosure gives students an opportunity to consider what they should disclose about an editorial automaton with explicitly designed goals and rules in order to maintain trust with the public that will be served by the bot.

The Teaching of Thinking

One of the big pedagogical goals of my Computational Journalism course is to teach the idea of computational thinking—how to formulate a problem so that it can be solved with computers. This includes thinking through how to abstract or decompose a problem as well as how to model, parameterize, and modularize solutions to problems.

Computational thinking is not explicitly about programming, though programming is how we often turn that thinking into operational tools. What I love about the bot project is that it’s a perfect way to introduce students to computational thinking. Bots abstract away from the notion of an individual story to focus on the capabilities of a continuously running computational information service used for journalistic purposes. Twitter bots are often not about an individual tweet but rather about the ability of automation to consistently and tirelessly monitor something, like air pollution—bringing public attention to an issue.

The project also helps students see another process of abstraction: the way the world must be quantified and datafied in order to be useful to bots. As students search for data that can be used to feed their bots, they have to consider how that data does or does not reflect the reality of the world that they seek to have exposed by their bot. The limitations of quantification become more apparent, including aspects of data completeness and quality.

Collisions that Build Practical Skills

Where computing and journalism collide, there is fertile pedagogical ground. For example, I urge students to consider the user experience of people serviced by or interacting with the bot. If the bot tweets too frequently, or not often enough, or isn’t attuned to an audience, it can become an annoyance or even start to feel like spam. What may be surprising is that writing is as important as ever in this type of project—creating a persona and attitude can help a bot to connect with its audience, as bots like NYT4thDownBot show.

Combining computational thinking, with considerations about editorial, newsworthiness, transparency and user experience gives students the chance to think through an end-to-end algorithmic media system. It also gives them a real context for developing practical skills by working with APIs, data, and code to produce a meaningful output.

More Bots Ahead

If you’re looking for more examples about teaching bots and journalism, my course isn’t the only one. As it is, I’d probably make a few changes for next year. For example, two weeks wasn’t long enough for students’ ideas to fully mature–I’d give them three or maybe even four weeks. Also, I’d consider making this a pair project, picking teams to ensure both strong editorial and strong coding backgrounds. It’d be ideal if we could give students the option to run their creations continuously—some bot longevity would make them more concrete and perceived as continuously acting entities. But this would require the development of a supporting server architecture, as well as additional training so students know how to launch their bots on that architecture.

Another potential mod to the project is to open up beyond social media bots and include chat bots on platforms like Slack or Facebook. In those spaces, bots can function as editorial support tools, which could make for new creative avenues to explore.



Current page