Blog - BS Data, hackery, stories

Things I taught and learned teaching in this year's MA in Interactive Journalism

End of term. No more lectures planned until next year. A few weeks to wait while the students complete their final projects and frantically email me questions.

This year was quite different from the last one. Here's what we covered in the "Advanced Data and Coding" module, part of City University's Interactive Journalism MA.

Module outline

We started off by talking about the web and the HTML-CSS-Javascript triangle. We ran through some exercises together, emphasising the concept of the DOM and how these three languages interact with the DOM through its API.

We moved on fairly quickly to file formats and to an introduction to Python through the Jupyter Notebook. In this graphical environment and armed with some syntax basics we briefly looked at Pandas for exploratory analysis then touched on web scraping. I ended up adding a session to the Python cocktail to introduce the concept of REST APIs, taking Twitter as an example.

The core of the module was an introduction to R through the prism of the tidyverse. We scraped, cleaned and plotted data for several sessions - learning by running into the same problems over and over again until they became easy things to solve.

Despite losing a bit of time due to oral presentations in class, we managed to learn how to do bits of more advanced data analysis and linear regressions.

Finally, we wrapped up the teaching with an overview of charting in Javascript and of d3, obviously. Aside from running through Mike Bostock's "Let's make a bar chart," we did not spend much time on d3, moving on swiftly to using Highcharts and cooking up website prototypes based on a collection of Bootstrap resources I gathered in a website template.

We followed the formal teaching with three weeks spent talking about the students' final projects, solving problems together and hopefully all benefiting from each other's struggles.

Some lessons learned

There is much more I want to write about this year's module, but for now, I am happy I led two sessions a week instead of splitting the module between two lecturers. This had led last year to an artificial split between front-end and R/Python, when I'd rather we look at it as a single pipeline for data journalism.

Teaching both R and Python, however, is still a lot. And it is somehow confusing by the end of the term: we did roughly the same thing in R and Python, so which one should I choose, they ask. I decided to go tidyverse-only and no-d3 this year, and I shall proceed to removing Python from the course next year. Less is more.

Finally, dedicating some time each week to talking about the field and running through the best of the week newsletters seemed to work quite well. One small assessment was an oral presentation about a piece, a technique, or a trend - and I was genuinely very happy with the quality of the research done for this assignment. I also hope my students will be better prepared and more knowledgeable for their job interviews.