We want a diverse classroom. If you are a student who is not from the Computer Science department, Management Science & Engineering department, or Symbolic Systems program, there may be some flexibility in these prerequisites. Please speak to the instructor or post on Piazza.

CS 147 or equivalent experience in design thinking is the first prerequisite for this course. This class moves quickly and assumes that you already have learned the basics of the design process and have executed a significant design project previously. This class focuses deeply on subsets of the design process. If you have never taken a design or HCI course, you could probably understand the content but you would not be well prepared to integrate it into the broader process.

Programming maturity with end-user facing languages: e.g., CS 142, is the second prerequisite for this course. The prerequisite exists because teams will need fluency in building interactive systems to complete the assignments. Every student must make a significant contribution to their team's project; students who are unable to do so should not take the class. That said, some may do more of the programming work, and others more of the user testing work. Teams will benefit from being multidisciplinary.

Bring your sketchbook, pen and laptop to class

Project 1 will describe the materials we ask you to buy for this course. Bring them to lecture and studio. We will often use them.


This class is titled HCI Design Studio because its goal is to give you an advanced design studio experience. Studio is a central component of class. Studios will provide you an opportunity to meet in smaller groups in order to discuss and reflect on projects and progress. They will focus on interactive critique sessions, as well as specific activities intended to supplement and expand on ideas from lectures.

Students must sign up for their studio on the first day of class.

Projects and Grading


The class consists of three projects. You will share progress and deliverables in studio.

Late assignments will not be accepted. There are two reasons that assignments need to be submitted on time. First, to be able to provide you with rapid feedback about your work, the teaching staff begins looking at assignments immediately. Second, you'll present your work in studio, and you need to be prepared to participate.

There are rubrics beneath each assignment that explain how you and the staff will grade your submission. Different columns represent different scores.

Submission Procedure

To submit an assignment, go to canvas.stanford.edu. From there, go to CS247 (either from clicking on CS247 from the Dashboard or by clicking on Courses). Then click on Assignments -> A1 (for example) (left menu) -> Submit Assignment (top right).

After uploading your file, click Submit Assignment.

For group submissions, only one member needs to submit the deliverables for the whole group.

Grade breakdown

The course grade is broken down as:

  • Projects: 65%
    • P1: 15%
    • P2: 25%
    • P3: 25%
  • Final exam: 20%
  • Attandance and Participation: 5%
  • Team Contribution 5%
  • Sketchnotes: 5%


Letter grade only: the "credit/no credit" option is not available. We have learned through hard experience that teams that are composed of students on different grading outcomes tend to end up in flames.


It is very important to us that all assignments are properly graded. The teaching staff works extremely hard to grade fairly and to turn around assignments quickly. We know what you work hard, and we respect that. Occasionally, mistakes happen, and it's important to us to correct them. If you believe there is an error in your assignment or exam grading, please submit an explanation in writing to the staff within seven days of receiving the grade. We will regrade the entire assignment to ensure quality. No regrade requests will be accepted orally, and no regrade requests will be accepted more than seven days after receipt of the assignment. Regrade requests must be respectful; we will not consider any regrade requests containing disrespectful language.


Design is a contact sport. Attendance is required for both lecture and studio. Trust us, this makes the class much better. If you miss more than two class periods, we will reach out and contact you to find out what's going on.

Lecture is not a traditional stand-and-teach lecture. It is interactive, and will involve a number of activities that can't be caught up later. We expect you to be active at the class scale and also locally at your tables. Your participation grade in the class will reflect this.

Studio is where the action is. Sharing your work and discussing designs with others is an important part of your design education. Therefore, studio attendance is also mandatory.

You are allowed two excused absences for the quarter without penalty; thereafter you will receive zero credit for the missed studio. To receive an excused absence, you must ask your studio instructor in advance, and receive an acknowledgment from the studio instructor.

  • Excusable absences include family emergencies, athletic competitions, job interviews, and presenting at a conference. It does not include wanting to leave early for long weekend or vacation.
  • Attending another class during lecture or studio is not an excusable absence.
  • Varsity athletes who would like to miss more than two studios to participate in athletic competitions must make any request before the end of the first week of class. No exceptions will be granted after the study list deadline.

Encouraging An Open Design Environment

The open exchange of ideas and the freedom of thought and expression are central to the class’s goals. These aims require an environment that recognizes the inherent worth of every person and group, that fosters dignity, understanding, and mutual respect, and that embraces diversity.

It's possible for even well-intended students to accidentally alienate your peers. Your designs can make unwelcome assumptions that don't fit some lives, and it's also possible for your critiques and conversations to constitute what's called harassment. Harassment means unwelcome or even hostile behavior, including speech, that intimidates, creates discomfort, or interferes with a person's participation or opportunity for participation. That behavior will shut the person down in class or studio, and that is simply not fair and not something we want in an open design environment. Harassment can involve nationality, age, color, creed, disability, gender, sexual orientation or any other protected status. It also extends to unwelcome sexual advances. A response that the participant was “just joking,” or “teasing,” or being “playful,” is not acceptable. If you have witnessed or experienced any harassment, please let an instructor know privately and promptly.

Frequently asked questions

What's the amount of time involved in the class?

There's a healthy amount of work involved. As with any design experience, you get out what you put in. Great assignments explore broadly and dive deep, and needfinding, design, implementation and evaluation take time to do well. Assignments will escalate in terms of ambition throughout the quarter. Expect that the final assignment will be a major effort in the last few weeks of class.

The class uses HTML and Javascript. Can our group use iOS programming?

We recommend against it. We choose technologies that give you a lot of interaction power for very little upfront cost. Others can take many hours to get running. Most group problems arise when one person strongarms their teammates into using another technology. Late in the quarter, it turns out that only one person can really do the work, and that creates all the problems you can imagine. If you use the usual technology stack, the TAs will help you if you get stuck. With other technologies, you're off-piste: we can't save you, and it can get awfully cold when the sun goes down. With that information, the choice is yours.

Do I have to go to studios?

Yes. Attendance at studios is mandatory.

Can I have an extension? I have a lot of work in other classes, I'll be out of town, I'm generally overwhelmed...

No. It's not because we're callous — we've all been in your shoes. Two reasons: 1) because sharing work in studio is integral to the class, there's no practical way to offer extensions. 2) Psychology teaches us that people consistently believe they'll have more time in the future than in the present—and that it's a fallacy. When you pick classes for the quarter, make sure not to overcommit. In our experience, you'll learn more and have a better resume by doing a great job in a smaller of classes, rather than trying to take as many units as humanly possible and doing a mediocre job with all of it.

When do we form groups?

You will form groups within the studio as each new group project begins. Depending on the project, we will either assign teams, or let you choose. We will strongly encourage you to form new groups for each new group project. During team formation make sure to ask your potential teammates two questions. 1) When are you available to meet? 2) What level of performance to you intend to achieve? This will help you find like-minded teammates.

One or more of my teammates aren't pulling their weight...

In classes as in life, some team problems are inevitable. As soon as you encounter subpar performance by a teammate: talk to them and accurately record their performance in your team assessment. There are many benefits to speaking up early. First, you've made your expectations clear so your teammate can adjust their performance. Second, it's on record in case things get worse later. Past performance is the best predictor of future performance, and transparency is the best management tool. If you speak up early, we can help. If you wait until late in the quarter to speak up, you share responsibility for the problem — and there's little we can do.

...Can I fire them or quit?

If you have a serious problem with your teammate(s), email them with your concerns, cc'ing your TA, studio instructor, or professor, requesting that the team at tend office hours to discuss the issue. If this discussion doesn't ameliorate the issue, you may notify your teammate(s) via email (cc'ding the instructor) of your intention to quit/fire them unless performance improves. Finally, if performance doesn't improve, you may email your teammate(s) (cc'ing the instructor) with your resignation/firing. A teammate who quits or is fired is responsible for future assignments on their own. This short essay by Oakley et al. provides great advice on diagnosing 'hitchhikers' and dealing with them effectively.

I would like to take another class that overlaps this class. What should I know?

Class attendance is required because the in-class material and exercises connect the principles taught through lecture to the design work. In short: CS 247 is an attendance-required course.

A personal issue (health, family event, other commitment) will take me away from class. What should I do?

Most importantly, let your studio instructor, TA and your team know ASAP. The sooner we hear from you, the more we can help. If you give your team a heads-up quickly, they're sure to be empathetic. If you just disappear for a few weeks, they'll be unlikely to want you back. Even if you have a good reason, no one likes being left out in the cold.

Fairness requires us to grade on performance, not desire. Think about if this issue came up when you were about to take the SAT — or if it came up in a job. Realistically, if you're away for more than a week, you have two choices: you can push forward and accept lower performance, or you can drop the class and retake it when you have more time.

My friends and I have a great idea we'd like to work on. Can we use for an assignment project?

Design praxis means being open to currently unseen alternatives. If you have an idea for a project at the beginning of the class, give yourself the benefit of the doubt and set it aside. Explore around its edges. Trying to bend our rules to make your previous idea fit typically results in poor assignments — not because your idea is bad, but that its current problems are not a good match for a design thinking course. Take it to an entrepreneurship class. At the end of the class, you will have acquired skills to execute your idea far more competently than you would right now.

I have a question that's not answered here. How do I contact the teaching staff?

If you have a question, post it to the class Canvas forum — don't send email. This includes all questions about assignment clarifications and class requirements. The reason: you may think you're the only one with this question. With so many students, someone else is bound to be interested. Answering all questions in a public place means that every student has access to the same information. It's both efficient and fair.

If you missed class (or will miss class) and would like to find out what's covered, review the syllabus materials then ask a fellow student to fill you in. Do not send email -- it's your responsibility.

Also, you're welcome to come to office hours and ask any question you want. You can ask questions about classes, internships, design, graduate school, jobs, or simply come to say hi, listen to other students questions, or share your background and interests. Office hours are for you, and the teaching staff really value your presence and questions.

With so many students, we unfortunately cannot accommodate requests to meet outside of office hours. We trust that if your question is important, you can find a way to make the time to come to office hours.