You must have taken CSE8A or CSE11 to enroll in this course. Students who have not taken CSE8A or CSE11 will automatically be dropped from the class and will not receive a grade. All students will need some fluency in programming to complete the course project. While some students may do more of the programming, and others more of the user testing, every student must make a significant contribution to programming their team's app.


Bring a laptop to class, lab, and studio for hands-on work. If your laptop's battery won't last the entire class, arrive early so you can sit near a plug. If you do not have a laptop, or yours breaks, you can borrow one from the UCSD Biomedical Library. Restrict your laptop use to class-relevant activities like doing the exercises or taking notes. Be respectful of your neighbors, so try to stay off Facebook, email, games, etc.; it distracts other students, not just you. We also assume all students will have access to a digital camera (e.g., on your phone) for assignments.

Code Lab

Each week, you will complete a code lab assignment that will help you learn tools and techniques to design and implement interactive web applications. Lab assignment walkthroughs will be posted on the class website the Wednesday before lab. You should plan to attend the in-class lab session on Thursday to complete the lab assignment, following along with the instructor. TAs will also be available during these sessions to help you. However, you may choose to try to complete the lab assignment on your own time. Labs are optional this quarter and will not count toward your grade. However, we strongly recommend that you complete them since they will help you on your project, and exam questions will also be taken directly from labs.

Weekly Assignments

You will have weekly graded assignments. In these assignments, you will progressively design and develop an interactive web application, which will culminate in a presentation at the end of the quarter. You should submit your assignments as PDF documents. Do not spend time "beautifying" your submission. Some assignments will be turned in individually, while others are done in groups.

No late assignments will be accepted. There are two main reasons for this no-late policy. First, to be able to provide you rapid feedback on your work, the teaching staff meets on Friday afternoon to grade all assignments together. Second, you'll present your work in Friday studio every week, and you need to be prepared to participate. If there is a problem with the website that makes it so you cannot submit your assignment, you must message your TA on Piazza by 1am or else you will receive a 0. You can only do this once.



Each assignment comes with a rubric explaining how the course staff will grade your submission. These rubrics have been developed over the years to clearly describe what we think mastery of each assignment entails. True mastery in any field is a lifelong process. (We don't expect you to become Garry Kasparov or Jony Ive in just 10 weeks. That will take until next quarter.) But for this course, 'mastery' means performing at the level described in the rubric. Make sure to review the entire assignment description, and especially the rubric, before starting your assignment.

Self assessment

Part of being a designer - or practitioner in any field - is being able to accurately assess how well you are doing. Helping you acquire that metacognitive skill is one of the course goals, so you will grade every assignment you submit using the actual assignment rubric (yep, you read that right!). This is not always an easy task; we hope that this exercise will help you improve your self-assessment skills and get you start thinking about how to evaluate your own work.

For team assignments, you will self-assess your work as a team and then privately assess your own and teammates' performance (called a "teammate assessment"). In general, everyone on the team will earn the same grade. However, if a majority of the team reports on their teammate assessments that an individual was more/less successful in achieving their goals, that individual's grade will be adjusted accordingly.

How does self-assessment affect my assignment grades?

Note that the staff will also grade your assignment. You will receive your own self-assessed grade for each assignment if it is within 1 point (higher or lower) of the staff's grade for you. Otherwise you will receive the staff's grade. For example, if you give yourself a 9 but the staff gives you an 8 or 10, then you get a 9. However, if you give yourself a 13 but the staff gives you an 8, then you get an 8.

Occasionally, a student will say that self-assessment feels like 'guessing'. If so, students are very good guessers. With impressive consistency, in past terms, well over half of all students self-assess within 1 point of the staff grade, and well over 80% are within 2 points.

Why do I receive my own grade (when it's within 1 point of the staff grade)? Aren't the teaching staff the better graders? (a.k.a.: is this just a clever way for you to sneak off and go surfing?)

Our former students overwhelming report learning a lot from self assessment. Many appreciate being able to assign their own grade, but some are uncomfortable with the responsibility. There's a philosophical reason why your self-assessed grade counts: it's your life! That doesn't mean we're not paying attention, though; we are also grading every assignment. If you've been to driving school, you know that you get to drive the car, AND there's an instructor right next to you in the passenger seat. They often have a brake pedal for emergencies. This class is like that. You drive, but we're right there next to you, paying attention and correcting when necessary.

(By the way, we do like surfing. Having both self and staff assessment approach is more work for us, not less—that's how much we believe this will help you learn to think like a designer.)


The teaching staff works extremely hard to grade fairly and return assignments quickly. (We grade all assignments together during staff meetings to ensure consistent grading across studios.) We know you work hard, and want you to receive the grade you earned. Occasionally, grading mistakes do happen, and it's important to us to correct them. If you believe there is an error in your assignment or exam grading, submit an explanation in writing to your studio TA on Piazza within 7 days of receiving the grade. This explanation should list the score that you think is most accurate for each rubric item, and explain why that score is more accurate than the one you received. A second staff member will regrade the entire assignment to ensure quality, and their grade will be your final score (you cannot make any further appeals). Make sure that the staff have access to all materials needed (e.g., the version of your app as of the submission deadline, login information, images or physical copies of any materials shown in person but not submitted online). We will not accept requests made orally, via email, after 7 days, or with disrespectful language or repeatedly after denied requests. If you hassle your TA or the professor with grading questions either verbally or via email, that automatically earns you a 0 on that assignment. This regrade option should be used sparingly only in rare circumstances when you feel there has been a substantial error; for instance, we will not view it favorably if you request a regrade on every assignment without just cause.

Note that due to very limited time at the end of the quarter, we will not be able to accommodate the 7-day time span for regrade requests for the final assignment. In general, regrades will not be permitted for the final assignment unless there is a dire emergency that we are informed about ASAP.

Attendance & Participation

Design is a contact sport, and studio is where the action is. Sharing your work and discussing designs with others is an important part of design, and we do a lot of both in studio. So studio attendance is mandatory. To receive credit for attending, you must arrive on time (no more than 5 minutes late) and stay for the entire session. Remember to sign in!

You are allowed two excused absences for the quarter without penalty; thereafter you will receive zero credit for any missed studio. To receive an excused absence, you must ask your studio leader in advance, and receive an acknowledgment from the studio leader. Excusable absences include family emergencies, out-of-town job interviews, and presenting at a conference. It does not include wanting to leave early for long weekend or vacation, or attending another class or on-campus event. Athletes who would like to miss more than one studio to participate in athletic competitions must make any request during the first week of class.

Grade composition & scale

Letter grade only: the "credit/no credit" option is not available.

Your course grade is out of 165 total points, comprising:

  • Eight weekly assignments (A1-A8): 107 points total, graded from rubrics (see self assessment for details)
  • Two in-class exams: 30 points (15 points each)
  • Self assessments: 8 points (1 point each for filling out the self-assessment form during studio for A1-A8)
  • Studio Attendance and Participation: 20 points max (one unexcused absence: you can get a max of 15 points. two unexcused absences: max of 5 points. three+ unexcused: no credit for this part.) You'll receive the following fraction of your max based on your level of participation:
    Low: minimal participation in studio & did not attend office hours (i.e., your TA rarely hears from you)
    Mid: some participation in studio and/or attended office hours with meaningful questions
    High: active participation in studio and/or attended office hours with meaningful questions

At the end of the quarter, raw point scores are translated into letter grades using the standard letter grade scale. For example (149/165) is 90%, so that would earn an A-. In this class, as with any, the grade you earn reflects your performance. We don’t 'mark off' for anything. There is no curve, so you are not competing with your classmates for a limited number of letter grades.

Do not ask professor about grades

Do not email, Piazza message, or verbally ask the professor about your grades. Everyone follows the same set of grading rules, which are set at the beginning of the quarter and clearly written down. This class is meant to reward high-quality, on-topic work that follows the rubrics.

At the end of the quarter, the entire staff meets to go over any special circumstances that may warrant minor grade adjustments. Please do NOT message us at the end of the term to argue over your grades. Trust us; we have heard all of the arguments before regarding why your case may be special. In the end, we will make final grading decisions that are the most fair for all students in the class, not just those who happen to be more persistent at arguing.

Academic Integrity

The course staff and I work hard to help you learn computational concepts and gain the skills necessary to be a contributor in digital society. We expect your help in achieving these goals. If you cheat, you not only fail yourself (in that you won’t have gained critical skills), but you fail UCSD (by lowering the expected quality of our undergraduate degrees). I have a personal responsibility to both you and to your fellow UCSD students -- and I take it seriously. So don’t cheat. I will submit an allegation report on anyone I believe to be not upholding our academic integrity contract. This is processed through UCSD's Academic Integrity Office.

The following is an excerpt from the UCSD General Catalog section on Academic Dishonesty:

No student shall engage in any activity that involves attempting effort, for example:

  1. No student shall knowingly procure, provide, or accept any materials that contain questions or answers to any examination or assignment to be given at a subsequent time.
  2. No student shall complete, in part or in total, any examination or assignment (including clicker participation) for another person.
  3. No student shall knowingly allow any examination or assignment to be completed, in part or in total, for himself or herself by another person.
  4. No student shall plagiarize or copy the work of another person and submit it as his or her own work.
  5. No student shall employ unauthorized aids in undertaking course work.
  6. No student shall, without proper authorization, alter graded class assignments or examinations and then resubmit them for regrading.

Frequently asked questions

What the course covers

How much time should I expect to spend?

In post-class surveys, students report spending 10-12 hours a week on this class. Some spend less; others spend more. As with any design experience, you get out what you put in. Great projects explore broadly and dive deep, and needfinding, design, implementation and evaluation take time to do well. Expect to spend a good deal of time outside of class with your team building your project.

What's the distribution of engineering, designing thinking and psychology?

There's a healthy balance of all three. The first class each week will cover design principles and methods. The second class each week gives you practice building interactive Web applications. Friday is the time you'll have to share and give feedback on your progress.

Are there any midterms or finals?

There is no final exam, but there are two midterm exams held in lecture (Exam 1 and Exam 2). The exams are closed-note; you may not use any outside resources.

What will the exams cover?

Anything covered in lecture, lab, or the online videos linked from either, is fair game for the exams. We often cover theory from lecture (e.g. heuristic evaluation, study design), and coding jtechniques from lab (e.g. version control, jQuery selectors, t-tests).

Regarding labs: you'll have to know how to read code on the exam, but not to write it yourself from scratch. We won't grill you about some tiny nitpicky code construct that appears on the corner of one slide in tiny font; the coding concepts that you will be tested on will appear in multiple slides, and probably throughout multiple labs. If you are working your way through the labs (not simply reading what's on the slide), then you should have a good understanding of the required material for exams.

When do we form groups?

You will form groups in the studio on the second Friday of the quarter. You can form and sign up for studios as a group but they have to be groups of 3. We'll be encouraging everyone to form groups as soon as possible so that you can pool resources. In the second studio, during team formation make sure to ask your potential teammates 2 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.

Attendance and Waitlist

What do I do if I'm waitlisted?

If you are number 20 or lower on the waitlist, you can attend lecture. However, because you won't have an account registered with the class, you cannot sign up for studio or submit work online.

If you think that you have a chance at getting into the class, please complete the assignments and attend any studio for the time being. If you get into the class, you will be able to turn in that work for points.

I'm an international student. How do I get an email and ID number?

Have your advisor email postmaster@ucsd requesting a UCSD email for you. For Web pages requiring a PID, first register for an extension ACMS Account follow this link you need this account to login to UCSD Coursera site.

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/videos to the design project work. Often, you'll submit work in class that will count toward your participation grade. Arriving late or leaving early may prevent you from doing so. Because of the large number of students enrolled, these exercises must be done during class — we don't have the resources to make individual exceptions. However, we understand that life happens — you might have a family event, job interview, attend a conference, or get sick. If you need to miss class, you can receive attendance credit by submitting the in-lab (or in-class exercises when we have them) online anytime before then end of class.

Do I have to go to studios?

Yes. Studio attendance is mandatory.

If I'm familiar with the lab technologies, should I still attend lab?

Yes. We'll be asking you to pitch in and help other students during the lab.

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

Most importantly, let your studio leader 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. We recommend the second option whenever possible.

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.

Also, for team project submissions, any of your team members can make a submission, so in case one or more members are out sick or are overwhelmed with classes, the remaining team members can be there to make up the work for a given week and submit the project. So there is no excuse for extensions. We give you enough advanced notice on all assignments to plan around when some of you will be busy.


My teammates and I have different project interests.

That's okay. If you happen to find a project that expresses your interests, awesome! But that's not really the point. And in some ways, it's a liability. A good designer can creatively solve any problem. If your design work addresses a topic that's not a particular interest of yours (and that's bound to happen quite a bit in the future), that's a great way to build your design thinking muscles because you have to learn what matters to users, rather than just relying on your internal knowledge.

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 the instructor, and requesting that the team attend 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.


The class teaches node.js and Javascript. Can our group use other technologies, like Ruby or a native app?

We recommend against it. 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 causes all the problems you can imagine. If you use node.js & Javascript, lab will teach you key techniques and the TA's 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.

Guidelines on using Wizard of Oz in the final project

The reason we implement things is to learn about how to better design the interaction, not to do busy work. By making your project more realistic, you will uncover design issues that may not be apparent with Wizard of Oz alone. Your final project will be evaluated on the design of the interactions, and you are certain to produce a better interaction if it is more realistic. Good heuristics to decide what to implement:

  1. If you can implement it, do it
  2. You should be focusing on the interaction design. If implementing it will take an inordinate amount of time, you should Wizard of Oz it in the most realistic way
  3. If it would be impossible for anyone to implement it, your design is wrong

To make this more concrete, consider the following two examples:

  • You are building a navigation application for pedestrians. This application will leverage GPS information to support wayfinding. In this instance it would be highly recommended that you implement GPS functionality for real, since it is central to the application.
  • You are building a social photo sharing application. Among a host of other features, you’d like this application to geotag photos if a GPS location is available. In this case, it may be appropriate to Wizard of Oz the GPS functionality, since it is not central to the application.
While implementing GPS functionality would take the same amount of effort in both cases, there is a much larger potential payoff for implementing it in the first case because it impacts a much larger portion of the interaction design.

Make sure to think about the easiest way to approximate the functionality you seek. For example, if you need basic phone call or message functionality, you may be able to make something sufficient just by using e.g., <a href="sms:">Send a SMS</a>

I was thinking of designing for tablets - is this okay?

It's fine as long as you can make a compelling case that your application benefits from being on a tablet and that those benefits don't extend necessarily to a desktop app or browser.


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 Piazza 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 nearly 300 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. For similar reasons, if you solve a problem yourself, post how you solved it. Use clear titles and tags. And we only respond to questions that ask nicely ;)

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. Philip and the teaching staff really value your presence and questions.

With 300 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.

When can I expect a response by on Piazza?

We will respond to all questions on Piazza within 48 hours, unless your question could've been answered by reading the course website or Piazza. Please do not expect an immediate response, or a response for things that are already clearly stated on the website.

This course was originally created by Scott Klemmer. This version is modified and taught by Philip Guo. It incorporates revisions by Michael Bernstein, Philip Guo, and many TAs. Instructors: you are welcome to use these materials for your own class, and dozens of courses around the world do. We share all course materials through a CC-BY license. Please let Scott know if you use them, and also any suggestions you have. We thank the UCSD CogSci department for providing our studio space.