PyCon: Oh, the Humanities! Teaching and Learning Interdisciplinary Python

Below is the approximate transcript of the presentation I delivered as part of the PyCon 2019 Education Summit on May 2, 2019 in Cleveland, OH.

Hi, I’m Lisa Tagliaferri. I’ve been doing postdoctoral research at the MIT Digital Humanities Lab and you may know my Python tutorials on DigitalOcean. Today, I would like to talk to you about what we can gain from incorporating the humanities — fields like history, literature, philosophy — into teaching and learning Python.

So what happens when you want to understand more about, say, gender and gender roles in the 19th century? Perhaps you can begin this research by looking at how gender is described in novels that were written and read during this time period.

So putting all of this together, what do you have now?

A splitting headache?

That may be so, but you also have a humanities problem!

As Pythonistas, we may think, hmm… interesting, let’s see how we can begin to explore this — we can pull together a corpus of novels through web scraping, perform statistical analysis, do some natural language processing … and see what we find.

With 25 MIT freshmen studying computer science, we compiled a corpus of 4,200 English-language novels and did this work. Many of the students knew how to do these things in Python already, so what did they learn?

They learned about ambiguous and tricky humanities data, the historical context of their data set, how their work intersects with gender theory and philosophy, and how to discuss their findings with professors of literature.

In the future, these students may not be trying to figure out how gender is described in 19th-century literature, but they will have to solve tough problems in the real world that are not really clear, will need to understand who is impacted by the software they build, and will have to communicate effectively with stakeholders across industries and fields. By incorporating the humanities into their computer science learning, they already have experience in challenging themselves in these ways and more.

As an aside, these college freshmen were mistaken for PhD students when they recently presented this research 🙂

The humanities are not just useful inside of formalized places of teaching and learning like universities. The humanities can help us out not just with ambiguous data, but also in applying a critical lens to technology, with a toolkit for building more inclusive software, a line of inquiry to begin tackling unconscious bias in machine learning, and serve as a reminder that offline research, archives, and communication are just as vital in the digital age.

My Python tutorials are written for developers, and many of them are project focused. A popular one is How To Scrape Web Pages with Beautiful Soup. This tutorial takes the reader through a web scraping project by using Python, Requests, and BS4.

Because of my background in the humanities, I would be remiss if I wrote this tutorial and did not mention that the package name is an allusion to Lewis Carroll’s Alice’s Adventures in Wonderland, and I also decided that this tutorial should work with Art History data! I tried to foster an environment for incidental interdisciplinary learning.

But, as often happens, despite playing the role of educator, I ended up learning (again) how quickly the internet changes, causing my real world example tutorial to no longer work. When readers pointed this out, I was able to cast this as a teaching moment on archives and the importance of maintaining the historical record of websites and data. Thankfully, resources like the Internet Archive exist to fix things like this.

And it is in a project like the Internet Archive, for example, where we can see the good outcomes that can emerge when technologists, librarians, and humanities researchers come together to build and preserve cultural contributions online.

And it is not the humanities alone. Learners and teachers who develop interdisciplinary thinking are provided with the opportunity to innovate at the intersection of traditionally discrete fields. By breaking down disciplinary silos, we can all begin to participate in broader dialogues that can inform our Python projects and allow them to better serve the communities that they support.