Teaching HCI Foundations and Frontiers

Michael Bernstein
7 min readSep 19, 2023

How do we ground students not just in the practice of human-computer interaction, but also in the theories and big ideas that animate the field? When there’s a vast library of theories, visions, architectures, and critiques, not every design idea has to start from the drawing board. I’ve recently redeveloped our advanced HCI course for undergraduates and graduate students to weave our major HCI theories into modern topics.

Required HCI curricula tend to focus on the design process, leaving a gap in teaching HCI’s big theories.

Design is important, but when the one required class in HCI is a design process course, our graduates leave with immense gaps. It’s a mistake for us to graduate students who can competently execute the human-centered design process but don’t have the tools to adapt it, refashion it, or question why it works the way it does.

When we at Stanford HCI laid out our learning goals for HCI track majors in Computer Science, we realized that there was an enormous gap on the theory side. We all felt that it was a mistake to send our students out into the world without an understanding of the major ideas that shape modern HCI. I’m going to use the term theories here to capture the wide variety of conceptual apparatus we draw on in HCI: while some may go by the term “theory”, others are described as visions, ideas, critiques, systems, models, or principles. Here’s a slice of them:

A table. Ubiquitous computing Tangible computing Ubicomp sensing pipeline Commodity vs. infrastructure-mediated sensing Design fixation Demand characteristics Gulfs of execution and evaluation Analogical transfer Wicked problems Participatory design Design patterns Reflective practitioner. Beyond being there Grudin’s paradox Distance matters Socio-technical gap Crowdsourcing / coordination at scale The Johansen Matrix Feminist HCI AI vs. IA Direction Manipulation vs. Agents Mixed Initiative etc
A subset of the major theories in HCI that we wanted to make sure our students understood.

When I would ask students to dive in and read these original works in prior classes, undergraduates would connect with the details rather than the deeper ideas: “Well, I’d never make that mistake” or “Well, I’d never use that design”. And to a certain extent, that’s fair: many of our big ideas are phrased in the technologies of their time. I estimate the half life of a useful real-world example in HCI to be about five years (“ugh, I was a sophomore in high school when that came out!”). Clippy is prehistory, and Facebook is greeted with eye rolls. But the reason these theories are important is that they continue to animate our work today—for example, in tech and society, in ubiquitous computing, or even in why the design process operates the way that it does.

So, craft a course that teaches the big ideas in HCI through the ways that they live on in today’s problems.

The basic recipe that I’ve found works is one that I’ll call “Foundations and Frontiers”. The basic concept is, for each lecture, teach one of the big theories in HCI (a foundation) and use it to explore, explain, and question modern problems facing computing and society or HCI today (frontiers).

For example, our first lecture introduces Mark Weiser’s concept of ubiquitous computing—a vision that serves as a very concrete jumping off point. Weiser’s vision proposes a very specific theory: that computing technology ought to become as invisible as infrastructure. This is easy enough to describe. But, when students read Weiser’s Scientific American article, it can feel a bit retro-futurist. How do we get students to really wrestle with Weiser’s concepts of calm computing, of tabs/pads/boards, of influential theoretical complements of that vision such as tangible computing, and of critical responses to the vision?

It turns out that modern research frontiers are a fantastic way to ground these questions. They are fresh and engaging, since they’re typically more recent publications that haven’t hit mainstream industry or widespread intellectual acceptance yet. And I don’t have to invent them, since HCI colleagues already have. Here’s a smattering of some of the projects I use to explain ubiquitous computing to advanced undergraduates and graduate students:

Slides including programmable objects, reactive environments, and activity recognition examples from CHI, UIST, CSCW

In other words, I teach a theory class using research as my figures and illustrations.

The whole syllabus from last year is here: http://cs347.stanford.edu. I’m happy to share slides, just ping me at msb@cs.stanford.edu. Here some other examples of how to I taught a lecture course big ideas from HCI using research frontiers to illustrate core concepts.

Design process: teaches wicked problems, participatory design, and design patterns, using recent examples on challenges in power and status in PD, designing as a wicked problem, mining design patterns, and dark design patterns. To do this, we anchor in recent work mining design patterns from apps, in catalogues of dark design patterns, and the status and accessibility issues with PD.

Slides titled, “Wicked problems” “Design+wicked problems” “Design patterns” “App design patterns” “Dark design patterns” “Participatory design” “Examples” “PD is not a panacea”

Social media: teaches foundational concepts of Beyond Being There, Grudin’s Paradox, and social media’s impact on people and society. The frontiers I use to illustrate these concepts include ads of VR/Slack being “as good as being there”, research projects such as SquadBox as examples of going beyond being there, recasting Grudin’s Paradox as an explanation for social media cold start failures, and recent work on the impact of social media on wellbeing and democracy.

Slides including beyond being there, examples of social media harms, grudin’s paradox, the cold start in social media, and how social media impacts politics

AI+HCI: teaches mixed-initiative interaction, IA vs. AI, mental models vs. folk theories, trust in algorithms, and algorithmic audits. This one is easy to anchor in recent advances.

Assignments prompt students to engage with the primary sources, apply theories, and extend theories.

The course is primarily lecture and discussion-based. However, I keep some important assignment structures that I inherited from Scott Klemmer and Jeff Heer when I got to Stanford a decade ago. Specifically, for each lecture, I have students read one to two papers, and submit some reflections to queue up for their small group discussion. Students meet in their discussion groups once a week to dig into their opinions on the lecture and readings. Once per quarter, they act as a discussant, summarizing the opinions of their discussionmates and working with the TA to drive that today’s discussion.

Yes, I have quizzes. It’s because many of the ideas in the course come out only in lecture, and I wanted to promote revisiting and remembering that material. I try to keep them small and lightweight.

As we proceed through the quarter, students begin a final course project in teams. The goal of the project is to push on the frontiers of HCI. I don’t call it a research project, though students can pursue novel contributions if they want. Instead, I ask them to grab hold of one of the ideas introduced in the class, and push it through a technical artifact, behavioral study, or theoretical reflection.

More at https://cs347.stanford.edu.

What works, and what doesn’t (yet)

When I revamped the course this past winter, it was an absolute blast to teach. I basically got to take everything that students had learned so far in HCI, keep asking “but why does it work that way?”, and then work with students to reconstruct their understanding of why we do what we do, where the field is going, and how to wrestle with tough societal and ethical consequences of what we create.

What seems to be working most effectively is getting students to “pop up a level”, and question themselves and their ideas rather than blindly applying the user-centered design process. As one student put it in their course evaluation (yes, I read them), one student mentioned, “I learned the strings that pull and unify HCI together,” and another, “I gained a better grasp of HCI’s grounding theories, historical arc, and major themes.” Classes don’t have to be easy, but they do need to be worth the effort, as one student mentioned: “The readings might be challenging sometimes but it really gives you a chance to rethink the way that you currently perceive HCI.”

In terms of what’s not yet totally resonating, it was hard to push students away from an assumption that they needed to do a research project for their course project. I wasn’t against that, but the project didn’t really require it. In the future, I’m going to provide much stronger scaffolding on what constitutes a viable course project. I also don’t feel like I’ve completely cracked the quiz genre yet for this course—I often tried to provide an example design concept and ask students essentially whether it was a good or bad idea based on theories presented in the course. Here, some students would get extremely creative about which theories apply, and it challenged the TAs in grading fairly.

At my most ambitious, I want to see HCI’s big ideas centralized and presented crisply in every HCI curriculum, rather than overlooked or spread out across a number of electives. At my least ambitious, I’m going to keep pulling this thread.

--

--

Michael Bernstein

Stanford, Associate Professor of Computer Science. Human-computer interaction, social computing and crowdsourcing.