6.813/6.831 — User Interface Design & Implementation
Spring 2018

General Information & FAQ

How can I get help in 6.813/6.831? Who should I ask?#

  1. Before you ask: search the 6.813 course page, Piazza, NB, or the web.

    We’ve tried to make the course documents as comprehensive as possible. Several FAQ questions below describe how to ask for help with specific problems.

  2. For questions about course readings, post on NB.

  3. For most other questions: post on Piazza.

    For general questions, post publicly so others can benefit.

    For sensitive issues, post privately.

    Do not post code on Piazza. Code cannot be shared publicly, and debugging over Piazza is not feasible.

  4. For group project questions, ask your TA mentor.

  5. For debugging help, visit office hours and talk to a TA or instructor.

  6. For grading questions: ask an instructor during office hours. These questions are not suitable for Piazza or email, and cannot be handled by TAs.

Should I email instructors, TAs, or other staff?#

No. Please post on Piazza, privately if needed.

How do I post privately? Should I restrict my private Piazza post to just certain staff?#

Please make private Piazza posts by selecting Post to: instructors and entering Instructors to make the post visible to all staff. This ensures the right staff member will see your post.

About the course

6.813/6.831 introduces principles of user interface development, focusing on the following areas:

Design. We will look at how to design good user interfaces, covering important design principles (consistency, visibility, simplicity, efficiency, and graphic design) and the human capabilities that motivate them (including perception, motor skills, color vision, attention, and human error).

Implementation. We will see techniques for building user interfaces, including low-fidelity prototyping, input, output, model-view-controller, and layout.

Evaluation. We will learn techniques for evaluating and measuring interface usability, including heuristic evaluation, predictive evaluation, and user testing.

Research (6.831 PhD only). We will learn how to conduct empirical research involving novel user interfaces, and read and discuss current and classic papers from the HCI research literature.


6.005/6.031 or equivalent software engineering experience, specifically:

  • programming experience in Java, C#, C++, or a similar language (i.e. not just Python and Javascript);
  • building at least one graphical user interface
  • working in a small software development team using version control

Differences Between 6.813U, 6.831M, and 6.831D

The class consists of three versions that meet together and share many assignments:

  • 6.813U for undergraduates
  • 6.831M for masters and MEng students
  • 6.831D for doctoral students

In general, the two graduate versions are supersets of the undergraduate version, but different supersets:

Course content. All three courses have the same material on design, implementation, and evaluation. Students in 6.831D have additional material on research methods and HCI literature.

Assignments. Students in 6.813U must submit the problem sets (PS1-5). Students in 6.831M must submit PS1-5 plus the analytics assignments (AS1-3). Students in 6.831D must submit PS1-5 plus the research assignments (RS1-3).

6.831M’s analytics assignments (AS1-3) are a problem set sequence about A/B testing. AS1 will be implementing a B version of a user interface, given an A version. AS2 will be running the A/B test against other users and collecting data. AS3 will be analyzing and writing up the results. Each assignment is designed as a one-week problem set, but AS1 involves implementation which may be challenging.

6.831D’s research assignments (RS1-3) are a problem set sequence about replicating a user study from a published conference paper. RS1 will be implementing the user interface technique and the infrastructure to run the test. RS2 will be running the experiment with users and collecting data. RS3 will be running statistical tests on the data and writing up the results. Each assignment is designed as a one-week problem set, but RS1 involves challenging implementation.

Group project. 6.813U and 6.831M both have the same group project, and students from either version may work together in the same group. 6.831D has a research-focused group project, with groups consisting of 6.831D students.

Studio meetings. 6.813U and 6.831M have group-project studio sections on about half the Fridays of the semester, to present progress and give critique. 6.831D has studio every Friday, to cover the additional material on research methods and research paper reading.

You should generally do the version appropriate to your current degree goal (undergrad, masters, or PhD), but you may upgrade if you wish, i.e. undergrads may choose to do 6.831M or 6.831D, and masters students may choose 6.831D.

Since the courses have substantial overlap, MIT will allow you to get credit for only one of them during your MIT career. Keep this in mind when deciding which course is right for you. You can change your mind and switch to another version any time before Add Date, but not thereafter. Note that if you’re switching between the undergraduate version (numbered 6.813) and one of the graduate versions (numbered 6.831), then you also have to do an Add/Drop with the Registrar. In any case, you are responsible for all the requirements of the version you finally register for.

Summary of Differences




Course Content

Design, implementation, evaluation

Design, implementation, evaluation

Design, implementation, evaluation
research methods, HCI literature



PS1-5 AND AS1-3

PS1-5 AND RS1-3

Group Project

6.813U and/or 6.831M Members
Implement/test user interface

6.813U and/or 6.831M Members
Implement/test user interface

6.831D only
Research focused

Studio Meetings

About half of the Fridays
Present and critique group work

About half of the Fridays
Present and critique group work

Every Friday
Discuss research methods and readings

Course Format

Readings. Most classes will have a reading that you must read before coming to class, with online exercises that you should do and submit by 10pm the night before the class. The online exercises are designed to be practice for the in-class nanoquizzes, but are not graded for correctness, only for completion.

This year, we will also use NB to discuss the readings. For each reading, you should post on substantive comment on NB. It can be a question or suggestion about something that is unclear, a question or observation or speculation about an application of the ideas, or a response to a comment already posted. These comments are also due at 10pm the night before the class.

Nanoquizzes. Each class meeting will include a short “nanoquiz” which covers the content of the current or recent classes. Every full-class meeting will have a nanoquiz, including meetings marked as “work time” on the calendar. Nanoquizzes are closed-book and closed-notes, with a 3-minute time limit. There will be approximately 25 nanoquizzes. Your lowest 5 quiz grades will be automatically dropped, and you can make up missed nanoquizzes or low grades. Makeup instructions can be found in the Nanoquiz section below.

No other quizzes or exams. Aside from the nanoquizzes, there will be no other in-class quizzes, no midterm, and no final exam.

Participation. You are expected to participate actively in class discussions and activities.

Laptops required. In order to participate in quizzes and in-class activities, you will need to bring a laptop to all class meetings. Your web browser should have your MIT certificate loaded in it.

Group project. A major part of the course is a group project, in which you will work in small groups to design, implement, and evaluate a user interface, through an iterative design process with a series of graded milestones (GR1-GR6). Students from 6.813U and 6.831M may work in the same group.

Studio recitations. On about half the Fridays of the semester, the all-class meeting will be replaced by studio recitation sections, consisting of 5-6 project groups and a TA. In studio, the groups will make short presentations to each other and give each other feedback about their projects. Active participation in studio is expected and graded. 6.831D will have studios every Friday.

Programming labs. During the first week or two of the semester (see the course calendar), optional evening labs will be held for students who need an introduction to client-side web programming with HTML, CSS, Javascript, and jQuery. These labs are optional, but they may help you with the programming problem sets and the group project implementation, which are required to be done in HTML/Javascript.

These answers to frequently-asked questions are adapted from 6.031’s.

Why is 6.813/6.831 structured the way it is?#

Practice and feedback are key to learning, and 6.813/6.831 is structured to provide as many opportunities for practice and feedback as possible. That means we don’t want to spend class time on lectures, we want to spend it on exercises to practice the concepts and skills of building software.

Citations: Wieman et al., Course Transformation Guide · Deslauriers et al., Improved Learning in a Large-Enrollment Physics Class

Why is attendance in class required?#

Class meetings are all about practice and feedback. The individual, pair, and small group questions, exercises, and coding problems we work on in class, and the discussions and feedback led by instructors, are a required component of 6.813/6.831.

Class is like swim/judo/math team practice: you don’t get good unless you show up, and practicing with others is a necessary complement to practicing alone.

I was or will be absent from class for one of the following, what can I do?#

  • Athletic event
  • Interview
  • Travel
  • Brief sickness or medical problem

You are automatically excused from up to five classes, including their nanoquizzes. You will receive a zero for the missed nanoquiz(zes), but the lowest 5 grades are dropped. You can also make up any nanoquizzes for partial credit by following the usual procedure for nanoquiz makeups.

Similarly, the in-class exercises and reading exercises for up to five missed classes will be automatically excused. Although there is no way to make up additional exercises, they contribute only to your class participation grade. You can compensate by doing an excellent job of participating during other classes.

I was or will be absent from class for a multi-day medical reason, mental health reason, or religious holiday, what can I do?#

  1. Post privately on Piazza and explain the circumstances.

  2. If you are an undergrad and haven’t already visited S3, go there to get help with all of your classes, not just 6.813. Ask your S3 dean to get in touch with the 6.813 instructors.

In some situations, you will be able to make up nanoquizzes for full credit, but you will not be able to make up in-class exercises, as explained in the previous answer.

Why are we sometimes asked to close laptops during class?#

Your laptop is a necessary tool for in-class programming, but it also presents a huge opportunity for distraction. The price of that distraction is paid not only by you, but by all those around you who can see your screen. In one study linked below:

  • For note-takers with laptops, multi-tasking led to a 11% drop in comprehension test scores.
  • For note-takers without laptops, merely having a laptop multi-tasker in their field of view led to a 17% drop in comprehension test scores!

If you want to use a smartphone in your lap, so that the screen is not visible and not distracting to others, we have no objection, but you’ll still be hurting yourself.

Citations: Sana et al., Laptop multitasking hinders classroom learning for both users and nearby peers · Mueller and Oppenheimer, The Pen Is Mightier Than the Keyboard

How is participation in class graded?#

In general, participation in class is graded based on whether you attempted the questions, exercises, coding problems, etc., not on correctness.

Why do I need to read the readings and complete the reading exercises the night before coming to class?#

Reading the material before class prepares you to spend class time practicing the concepts and skills you’re learning. Reading in advance gives you time to think and ask questions, and repeated exposure to material spaced out over time improves learning.

See: Spacing effect

How are reading exercises graded?#

Reading exercises are graded only based on whether you have completed them, not whether your answers were correct.

Why does the class have nanoquizzes on topics before we practice them in class?#

Nanoquizzes assess whether you did the reading and practiced with the reading exercises before coming to class, and they provide feedback to you on your comprehension. Nanoquizzes are themselves part of the practice we do in class: recalling information from the readings benefits learning more than just re-reading or re-hearing it.

See: Testing effect

Are past nanoquizzes available?#

No. However, reading exercises are often based on (or copied from) past nanoquiz questions.


  • Course project: 42%, divided equally among GR1-6
  • Assignments: 32%, divided equally among the individual assignments for your version:
    • 6.813U: PS1-5
    • 6.831M: PS1-5, AS1-3
    • 6.831D: PS1-5, RS1-3
  • Nanoquizzes: 20%
  • Participation: 6%, divided among reading exercises (2%), class activities (2%), studio (2%)

What are the grade cutoffs this semester? What letter grade do I have?#

Letter grades are determined at the end of the semester. The default cutoffs are: a final average of 90 and above is an A, 80 and above is a B, 70 and above is a C. These boundaries may be adjusted downwards if necessary because of the difficulty of the assignments or quizzes, but the boundaries will never be adjusted upwards, so a final average of 90 is guaranteed to be an A. The boundary adjustment is done heuristically, and there are no grade quotas, no grade targets, and no centering of the class on a particular grade boundary.

Every student is considered individually in the final grading meeting, judging from their entire performance in the course. A single bad mark in an otherwise consistent record will often be discounted.

I have a problem with my grade on a problem set or nanoquiz or other 6.813/6.831 assignment, what should I do?#

If the problem is an objective grader error, like adding points incorrectly or overlooking something that was clear in your answer, then you can email the grader to ask for the correction, if the grader’s username is shown on the grade report. (It isn’t always shown.)

Otherwise, this is a rare case in 6.813 where we ask you not to post on Piazza, and not to email or talk to a TA. 6.813 TAs are not empowered to have discussions about grades, and Piazza is reserved for learning and problem solving. The point of this rule is so that TAs can focus on helping people learn, rather than being grade arbiters.

Instead, please bring your grading questions in person to an instructor’s office hours, which are shown on the course calendar.

Nanoquiz Grading

Nanoquizzes consist of multiple-choice questions with several options. Each option is worth one point. If you correctly choose the answer when it’s right, then you get one point. If you correctly don’t choose the answer when it’s wrong, then you get one point. This scheme applies uniformly to choose-all-good-answers and choose-one-best-answer questions.

For example, consider a choose-all-good-answers question with choices A,B,C,D, of which only C and D are correct. If you answer C,D then you get 4 points. If you answer A,C then you get 2 points (since you were wrong about A, right about B, right about C, and wrong about D). If you answer A,B then you get 0 points. For example, consider a choose-one-best-answer question with choices A,B,C of which only C is correct. If you answer C, then you get 3 points. If you answer A, then you get 1 point (since you were wrong about A, wrong about C, but right about B).

Nanoquiz Makeups

We automatically drop the lowest 5 nanoquiz grades. If you’re dissatisfied with any of your remaining nanoquiz grades, however, you can earn up to half the lost points for that quiz back, in one of two ways:

  • Write a good nanoquiz question for the same lecture. Quiz questions must be multiple-choice (“choose one answer” or “choose all good answers”), and must indicate what you think the right answer(s) should be. Good questions should be relevant to the lecture content, straightforward to answer by someone who read the lecture notes, and hard to get full credit on otherwise. Good questions will generally come from the Knowledge, Comprehension, or Application levels of Bloom’s Taxonomy. Higher levels are better. See Multiple Choice Questions based on Bloom’s Taxonomy for ideas.

  • Find a good example for the same lecture. An example consists of an image (often a screenshot of a user interface, but not necessarily) and a paragraph of text, related to a specific topic discussed in the lecture. Don’t riff on the lecture’s hall of fame/shame example, because that’s not considered a specific topic of the lecture.

Make sure you do the right lecture. Nanoquizzes are numbered by the lectures they cover. If you don’t like your grade for Nanoquiz 1, then you should be offering a question or example related to Lecture 1. Note that these makeups are worth only half of the lost points. If you took the nanoquiz and got 8/10, then this makeup can bring your grade up to 9/10. If you missed a nanoquiz entirely and got a 0/10, then this makeup will raise it to 5/10.

The deadline for making up a nanoquiz is one week (7 * 24 hours) after that nanoquiz’s grades are posted. Makeups may not be revised or resubmitted. Only one submission per nanoquiz will be considered. Makeup submissions are reviewed roughly once a week. You will receive an email about whether your submission was accepted.

Submit your questions or examples using the nanoquiz makeup submission form.


Students in 6.813U and 6.831M meet every second friday for studio. The purpose of the studio is for you and your group to get feedback from your peers and your TA on your group project at each checkpoint. To facilitate discussion and feedback, each studio will have only five to six groups.

Students in 6.831D meet more frequently, i.e., every friday. They will also use studio time to get feedback for the group project, but in addition participate in HCI research paper discussions and learn additional material on HCI research methods in the studio.

See the course staff directory below for studio times and locations.

Project presentation and feedback in studio (6.813U, 6.831M, 6.831D)

  • Before coming to studio:

    • Draft your writeup for the project checkpoint on the google doc.
    • Prepare a short, 4 minute presentation for studio using Google Presentation (to avoid laptop switching). Share the link with your TA. See examples and suggestions on content and style.
  • At the studio:

    • Each group will have 4 minutes to present. You must split this time evenly among the team members.
    • Members of the studio will then have 4 minutes to provide you with feedback on your project.
    • Take notes during the discussion of your presentation and put the important ones on your google doc. Feel free to answer any clarification questions that are being asked, but resist the urge to defend yourself. You don’t have to take every suggestion provided, but you can miss a lot by not listening and reflecting on your peers’ feedback. Resist.
    • When providing feedback, do your best to be helpful and respectful. To facilitate this, we will strive to use “I like,” “I wish,” and “What if” at the start of any feedback we provide. Here are some examples:
    • I like how your user classes are well-defined and clear.”
    • I wish that goals of the users were more varied.”
    • What if you include more information about your user age-groups?”
    • Whenever possible, keep your feedback short and specific. Giving good feedback is HARD. Be mindful, and when in doubt, fall back on being helpful and respectful. We will also practice giving feedback in our first studio session.
  • After studio, before the project checkpoint due date on Sunday:

    • Revise and finalize your google doc writeup
    • Complete the self-assessment form (one per group member)

Paper discussion in studio (6.831D)

  • At the studio:
    • we will not use any laptops in the paper discussion studio, so please keep them closed and focus on the discussion
    • each week, one of the studio participants will lead the paper discussion
    • the job of the discussion leader is to structure the discussion, raise interesting opposing points, and ideally know something about the topic that goes beyond the two papers everyone has read
  • if you are the discussion leader for this studio
    • read the papers and create a google form with questions about the papers
      • use the week 1 example form from us to get an idea of the format: studio reading list
      • we need this google form monday, 8pm, of the week we are reading your paper in studio
    • since you created the form, you will have access to the answers from all participants, use them to guide the discussion in the studio
  • if you are a studio participant
    • print out the research papers we will discuss in the next studio
    • read the papers and make your annotations directly on the paper
      • this will help you remember what you read when you come to the studio
      • we will collect them at the end as part of grading participation
    • after reading the paper, answer the questions in the google form linked below the papers on the studio reading list
      • the deadline for filling in the form is thursday evening 8pm, the studio will be friday 1pm.

Collaboration and public sharing

This topic has its own page: collaboration and public sharing.

Lateness and Extensions

To give you some flexibility for periods of heavy workload, minor illness, absence from campus, job interviews, and other occasional (but often predictable) circumstances, you may use limited extensions on problem set deadlines, called slack days. Each slack day is a 24-hour extension on the deadline. You have a budget of 5 slack days for the entire semester, which you may apply to any combination of individual assignments (PS1-5, AS1-3, or RS1-3). You can use at most 2 slack days for a given assignment. Assignments more than two days late will not be accepted. Slack days apply only to individual problem sets, not to group work (GR1-GR6). For group assignments, we will grade whatever you have on your google doc at handin time.

To use a slack day, just submit the assignment late. You DO NOT need to notify the staff. When we grade your assignment, we will see that you submitted late, and dock you the appropriate number of slack days in our records. You are responsible for keeping track of the slack days you’ve used. If you have used up your slack days, or exceeded the 2-day limit for a single assignment, you will need an instructor’s permission and support from an S^3 dean for more extension.

We expect that almost all your needs for extensions will be handled by slack. Only truly exceptional, extreme emergency cases will be considered for extensions after your slack days are exhausted. In particular, to receive said extension you will need to convince the staff that all five of your slack days were used for reasons that would have justified an extension. So use your slack budget wisely. Finally, we want to emphasize that slack days are for emergencies. Plan to submit every assignment on the real due date, and only use a slack day or two if something unexpected comes up last-minute. Do not treat slack days as pre-planned due date extensions. In particular, if you are already using two slack days for an assignment and email us at the end of your second day requesting an extension for a third day, we will probably turn you down.


There is no required textbook. Recommended books:

This little book is a classic work on usability, not just of computer interfaces but also of physical objects like doors, showers, and stoves. Full of great anecdotes, plus theory about how users form models in their heads and how users make errors. Belongs on every engineer’s shelf.

Somewhat dated but still useful handbook for discount usability engineering, covering many of the evaluation techniques we’ll be learning in this class.

A terrific guide to graphic design, chock full of examples, essential principles, and practical guidelines. Many programmers have a fear of graphic design. This book won’t teach you everything – it still pays to hire a designer! – but it helps get over that fear and do a competent job of it yourself.

Good references:

Other books we like:

Books about statistics and experiment design:

Course Staff



David Karger

Office: 32-G592
Office Hours: Mondays 3-4 PM


Lea Verou

Office: 32-G598
Office Hours: Wednesdays 3-4 PM


Amy X. Zhang

Office: 32-G598
Office Hours: Thursdays 3-4 PM




Studio Location

Studio Time(s)

Kenny Friedman


26-142 (831D only)

2pm (831D only)

Kelly Qi




Jenny Liu




Mary Thielking




Nikhil Punwaney




Tricia Shi



1pm, 3pm

Michelle Huang




Christina Wettersten



3pm, 4pm

Jackie Xu