Welcome to COGS 231!


The primary objective of this course is to familiarize you with the latest academic research on human-centered programming tools.

To achieve this objective, we will be doing a deep dive into the literature of human-computer interaction (HCI) papers that aim to make the act of computer programming more intuitive, productive, and fun for humans. We will cover a mix of empirical studies and systems-building papers.

A secondary objective of this course is to teach you how to develop the important graduate-student meta-skill of being able to read papers critically, strategically, and tactically, which will help you become more effective at your own research.


This syllabus is still preliminary and very much in flux; check back around the start of the quarter for a finalized syllabus.

The bulk of this course will revolve around reading and responding to research papers in top human-computer interaction conferences and journals. There will be no textbook.

Before each class period, you will be expected to read the assigned paper(s) in detail (the list will be finalized soon), write a structured response on Piazza, and be prepared to discuss in class. Your Piazza responses will be due before class starts so that we can use it as the basis for kicking off the in-class discussion.

Since this class will be a small 10-person seminar, it will be hard to get a good grade if you do not carefully read the assigned papers before each class period. It will be very easy for everyone in the room to tell who has and has not read the papers. :)

Assignments will consist of a mix of:

  • written responses and discussions on the Piazza forum
  • oral presentations with assigned themes
  • in-class oral discussions
  • online blog-style write-ups responding to oral presentations and in-class discussions

There is no final exam for this class.

See here for the final list of papers we covered.