Studying HCI at Stanford

Stanford students, here are my recommendations for how to make the most of the human-computer interaction opportunities here.

Recommendation letters

I love seeing my students go on to do great things. Swing by my office hours or let me know if you'd like me to write you a letter of recommendation. I'll need a brief email from you, containing: your unofficial transcript, any relevant materials you want to share about classes you've taken with me or projects you've done with me, and a link to a Google Spreadsheet forked from this one to give me details I can enter into my hand-rolled recommendation reminder system. When listing me as a recommender when you apply, use rather than my usual email address. Because I write many letters each year — and they're often all crunched in November through January — I need one month of notice so that I can schedule myself enough time to sit down and write a good letter.

Mailing Lists

Get yourself on the hci-students list for course announcements, and the hci-student-jobs list for internship and job opportunities.


There are three core classes in the human-computer interaction curriculum at Stanford: CS 147 (Introduction to Human-Computer Interaction), and CS 247 (Interaction Design Studio), and CS 347 (HCI Foundations and Frontiers). If you're interested in human-computer interaction, I recommend that you aim to take all three courses. 147 should be taken first, but 247 and 347 can be taken in any order. My HCI Group colleagues also offer many other upper-division classes in HCI, including CS 448B (Data Visualization), CS 194H (HCI Design Project), CS 377N (Introduction to the Design of Smart Products), and CS 377G (Designing Serious Games); check ExploreCourses for special topics courses listed under the CS 377 series. Colleagues around campus also offer many other great courses listed at The CS 547 seminar features weekly talks from top professionals and researchers in HCI. The rest of the HCI requirements vary by department but tend to focus on three main skills: 1) computational thinking, 2) empirical thinking, and 3) design thinking. The set of HCI classes is always evolving; our group keeps an updated list in addition to the opportunities at the Stanford

Undergraduates: the HCI track within the Computer Science major is a fantastic opportunity. The HCI track is one of the most popular tracks within the Computer Science major! For those who want a more interdisciplinary viewpoint, the HCI emphasis within Symbolic Systems is excellent. Both majors allow you to pursue an honors thesis by completing original research in HCI. Our classes also regularly have participants from Mechanical Engineering, Art, Management Science & Engineering, STS, Communications, and many other majors.

Masters/Coterm students: the most common path is the HCI concentration in the Computer Science masters program. If you are considering a Ph.D. afterwards, you can choose to add a research certificate to your masters program in consultation with one of the HCI faculty. The Symbolic Systems program also offers a masters degree with a focus in HCI: like the undergraduate SymSys major, it is more interdisciplinary in focus.

Student Research

Coursework teaches you within the boundaries of what we know; research is our chance to push beyond those boundaries. We have a small number of research opportunities for Stanford student researchers. During the academic year, email me to express your interest. I strong encourage you to consider summer internships viathe department's undergraduate research program, CURIS.

Applying to Stanford HCI

Ph.D. applicants

Advising Ph.D. students is a major reason that I love the university environment, and Stanford HCI has an impressive history of success and impact with its graduate students: they're now professors at UC Berkeley, MIT, Stanford, University of Washington, Carnegie Mellon, UC San Diego, Cornell, University of Illinois; they're researchers at Microsoft, Google, and many other labs; one of them is a cofounder of Google. My students and I aim to make each other the best researchers possible, and to constantly learn and adapt.

If you're going to apply to Stanford HCI, I strongly recommend that you concurrently apply to the Knight-Hennessy Scholars program, which is a fellowship opportunity that is unique to Stanford. Note that its deadline is often earlier than the Ph.D. program deadline.

The single best thing you can do in your application is clearly communicate your ability to do original research. Most commonly, top students demonstrate this through 1) experience and 2) strong recommendations. If you have made major contributions to a research project before applying, your chances are far stronger. I cannot overstate the importance of your letters of recommendation. Make sure to talk to your letter writers early about your application. Tie all of this together in your personal statement, and mark my name as a possible mentor in your application. Every faculty member looks at slightly different criteria when reviewing applicants. I generally put emphasis on a combination of technical preparation (can they build a nontrivial system?), critical thinking (can they ask and answer interesting questions?), creative thinking (can they drive insights on a complex project?), and level of independence (can they translate ideas into execution?). Typically these characteristics get expressed through your prior research and life experiences in your personal statement and recommendation letters.

For those applying to work with me, my group focuses on the design of social computing systems. That means that Ph.D. students work with me on topics related to designing systems that catalyze the positive interactions that we want to have with each other as groups and as a society. For example, groups now increasingly interact online—through collaboration tools, crowdsourcing platforms, or social network sites—providing an opportunity to design computational systems that positively support those interactions. Each Ph.D. student finds their own intersection with social computing: past students have worked on topics that include paid crowdsourcing platforms, online collective action, collaboration with AI agents, anti-social behavior and trolling, online art communities, peer feedback in education, governance, and interactive systems that draw on large-scale behavioral data. I encourage my students to find intersections with social computing that reflect and amplify their own interests.

Masters applicants

Stanford's masters program in Computer Science includes a popular track for human-computer interaction. The program is generally oriented toward students who want to make their impact in industry rather than research. Applications are handled at a departmental level, based on a combination of academic history, recommendations and experience. Because applications are considered department-wide, I can't help you with your application, even if it's focused in HCI. If you've been admitted into the program — congratulations, and I look forward to seeing you here!

The majority of the masters students I advise are in Computer Science, but there exist many other paths as well. If you want a more interdisciplinary program, you might consider Stanford's Symbolic Systems masters degree, or the masters program in Design Impact.

Visitors and postdocs

Our group has a limited bandwidth for visitors and postdoctoral scholars. If you decide to contact me about a potential postdoc, internship or visiting position, please be specific about why you would be a good fit for my group, and include a link to your curriculum vitae.