I believe in teaching practice through theory – students have to understand why they’re doing things, even in a practical discipline. That means history, theory, and ethics embedded throughout even “purely practical” classes. Likewise, I think that, at the undergraduate level, theory rarely takes hold without practice, requiring the teaching of purely theoretical content in practical context. Basically, any class you take with me, you’re going to be doing some very real-world activities that should be fun/surprising… but you’re also definitely going to be writing a research paper/proposal at the end.


At Northwestern, I teach and assist with human/computer interaction classes in the Communication Studies department. In addition to two years as a TA for my advisor’s extremely popular Communication & Technology class, I am now teaching my own seminar in addition to several workshops.

Additionally, I mentor several undergraduate students as the coordinator of the NSF-supported Research Experience for Undergraduates in Northwestern’s Social Media Lab. There, I run our summer program and mentor undergraduates in research methods year-round.

Human/Algorithm Interaction Seminar

I designed and now teach a discussion and writing seminar class targeted at upper-division undergraduates. In it, we pursue the dual objectives of better understanding the role of and effects of complex algorithmically-driven systems on our lives and society, and improving student understanding of and skill at scientific writing. A syllabus is available here, and the course description from our catalog is below:

Algorithms, or, more broadly, systems driven by computational actors, are everywhere, and right now we’re all trying to figure out just how much influence they do (and should) have over our lives. It seems like a new question, but it can also be seen as an extension of a debate that’s been raging about computers specifically since the 1950s and technology in general since a very dangerous external memory technology known as “writing” debuted. The latest iteration of this debate involves all computerized decision making and content recommendation systems, from Facebook’s News Feed to search engine results that determine what is or is not “true” for a large portion of the world. We’re in a synthesis with these computational actors, for better or worse, and understanding them is a huge step towards understanding the modern world on a deeper level. This course is a tour through the three-way interplay between algorithmically-driven systems, individual human experience and values, and large-scale social structures. We will start broad and philosophical, then take a deep dive to highlight direct impacts on daily life and dispel some of the key myths that surround these technological interlocutors. Along the way, in keeping with the mission of the junior writing seminar, we will deconstruct key articles the literature to identify what makes “good academic writing.” This will culminate in your own 20-page research proposal. We will take the explicit position that there is, in fact, no such thing as “good writing” – only low-fidelity drafting, an openness to feedback, and a passion for editing. As such, our focus will be on getting ideas on paper, and then helping each other iterate and turn these ideas into a solid written foundation for scientific inquiry through workshopping and in-depth feedback.

Computing Everywhere

Computing Everywhere is a five-week workshop programmed designed to expose Communication Studies students to computational concepts, taught by a diverse slate of graduate instructors. In addition to being part of the team that created Computing Everywhere, I teach two workshops in the series.

My regular segment, which I co-taught with fellow student and HCI expert extraordinaire  Scott Cambo, was entitled “Algorithms Everywhere.” The description:

Algorithmic decision making systems are pervasive in business and culture, and have a general reputation as bias-free, even-handed decision makers. However, all algorithms have embedded biases, and these biases have real-world consequences. It is not impossible to identify and mitigate algorithmic bias. This workshop is an introduction to algorithmic bias, where it comes from, how to identify it, and how solutions to these problems will take cooperation and understanding between those charged with engineering the systems and those with the knowledge of culture, society, law, and ethics. Communication Studies students should be able to leave this workshop with enough general understanding of the concepts and jargon used with algorithms as well as their cultural and social impact to feel confident that they can successfully collaborate with software engineers to mitigate biases or even go on to learn how to engineer these systems themselves.

I also taught a workshop on basic natural language processing in Python, entitled “Computational Approaches to Classical Communication Studies.” The description:

Historically, one of the key focuses of Communication Studies has been examination of public discourse. More recently, “public discourse” has been redefined from political speeches and historical texts to social media data, chat logs, and beyond. As the available textual data has expanded, the opportunities for examining the utterances of the need for computational methods in text analysis has expanded apace. This workshop is a very basic introduction to text analysis in Python using the Natural Language Toolkit (NLTK). Using a pre-loaded instance of Python (likely a custom instance of Cloud9, with NLTK and all analysis material available), we will skip the complicated setup process and help students get straight to what they want to do: find patterns in a corpus of text. Topics to be covered include basic maintenance operations such as tokenizing and cleaning data for processing, as well as immediately-useable discovery features such as word frequency (including frequency plots and distributions), dispersions, collocations, concordances, and contextual inquiries. These tools form an exploratory basis for more in-depth work should a student wish to expand their knowledge beyond the workshop and, at the very least, provide a quick way to preliminarily examine and evaluate large bodies of textual data for any number of Communication Studies-related projects.


While I was a Master’s student at George Washington University, I served as a Graduate Teaching Assistant, Instructor and occasional Guest Lecturer in the School of Media and Public Affairs. I taught Multimedia Journalism and Sustainability Reporting, and assisted with other Mass Communication courses.

Courses Taught

  • SMPA 3193: Sustainability Reporting
  • SMPA 3193: Multimedia Reporting to Inform and Engage
  • SMPA 1050: Media in a Free Society

One element of my teaching philosophy is that, whenever possible, senior-level students should produce work that goes somewhere. For publication, for a portfolio, for a grad school admissions essay – why have them write for me and then never revisit or use the piece?

The student work for my multimedia classes has been featured on Planet Forward and National Geographic’s “The Plate” blog. I will update the list below whenever I can. I usually also post links to my Twitter at publication.

  • Campus Voices @ The Plate – all of the GWU submissions are either my students or my interns
  • Food in our Lives and Our Food, Our World – Two roundups of my 2014 Sustainability Reporting class’ work
  • Selfie Challenge – The introductory exercise in my Sustainability Reporting class, where students are thrown directly on camera to talk about community innovations
  • Climate Change and My Hometown – a series by my 2014 Sustainability Reporting students on how climate change is already affecting the places they’re from.
  • #THINKFWD – A collection of pieces from my 2013 Multimedia Reporting class