You must have taken CSE8B/11 AND (DSGN1 or COGS1 or COGS187A) to enroll. Students without these prerequisites will be dropped from the class and will not receive a grade. Why CSE8B/11? because all students need some programming fluency to complete the course project. While some students may do more of the programming and others more of the other pieces, every student must make a significant programming contribution to their team. Why DSGN1/COGS1/COGS187A? Because students need basic knowledge of human cognition to do HCI.


In lab, you will learn to implement mobile Web applications. Lab walkthroughs will be posted on the class website the day before lab. We strongly encourage all students to attend lab in person because the teaching staff (and your peers!) can help you. However, you may choose to complete labs on your own. We work hard to make sure that labs can be completed within classtime. That said, we know that students go at different places and sometimes go slower. If you are still working at the end of classtime, just let your TA know in person (not Piazza) and we will give you additional time. Labs are individual assignments; your submission must be your own work. Submissions made by 2pm will receive full credit.

If you can complete the stretch goal during classtime, awesome! That said, we don't expect everyone to do the stretch goals; they're there for students already familiar with the technologies who want to push themselves further. Our class has students with really widely varying prior experience with these web technologies, and stretch goals help accommodate that. We don't expect everyone to do the stretch goals. If you don't have time to do the stretch goal in class and would like to do more programming, we encourage you to spend that effort on your project.

Heroku: You are required to keep your 2 most recent labs on Heroku. Your team is required to keep the 5 most recent assignments in Heroku.


In the weekly design assignments, you will progressively design and develop an interactive web application. This group project will culminate in a presentation and poster session at the end of the quarter in front of invited design jurors. Use to submit your assignments online by 11:59pm each Thursday. You should submit your assignments as a pdf or word doc. Do not spend time "beautifying" your submission.

No late assignments will be accepted. There are two 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. 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.

If you have a question about the assignment, do not wait to ask it the night before it's due. We cannot guarantee a prompt response


Each assignment has 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. Make sure to review the entire assignment description, and especially the rubric, before starting your assignment.

The instruction staff will necessarily need time to thoroughly evaluate each submission; this can be very time consuming. We strive to get all students feedback by each Monday at noon; sometimes we may need a bit longer to review everyone's work.

Self & team assessment

Part of being a designer - or practitioner in any field - is being able to accurately assess your work. To helping you acquire that metacognitive skill, you will self-assess your submissions using the assignment rubric. If you aren't used to that, it may be dificult initially. By assessibng your own work each week, you'll build this 'muscle' and it will become easier.

Your work is assessed in two ways. First, you’ll evaluate your own work at end of studio each week. Second, the teaching staff will assess how many of rubric items your submission meets. When both reviewers are close (within 2 pts), your grade will be the average. If the two assessments differ by more than that, your grade will be the TA’s score. (The number on Gradescope shows the staff assessment, not the combined score.) Having both self and staff assessment is more work for us, not less—that's how much we believe this will help you learn to think like a designer.

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

How well does self-assessment work?

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

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-assessment counts: it's your life! That doesn't mean we're not paying attention. 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.


The teaching staff works extremely hard to assess work based on the provided rubrics, and also to return work quickly. Occasionally we make errors, and it's important to us to correct them, which is why we have a reassessment process. We know you work hard, and want you to receive what you earned. (note: We never 'take off' points. )

If you believe your score does not match the rubric: within 7 days of receiving the score, select any rubric item(s) in contention via the 'request regrade' button at the bottom. 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 reassess the entire assignment to ensure quality; this will become your final score.

Make sure the staff have access to all materials: your app as of the submission deadline, login information, and images or physical copies of any materials shown in person. To insure that all students have access to the same information, Requests made orally, after 7 days, or via email not be accepted. Using disrespectful language or verbally hassling your TA with grading questions automatically earns you a 0 on the assignment. You will receive your revised and final assessment within three weekdays of requesting reassessment.

If the regrade changes any rubric item (in either direction), you retain the ability to ask for a regrade on a future assignment. If the regrade does not change at all —including a broken app link, or a 0 based on tone— then you’ve used up your ability to ask for a regrade.


Design is a contact sport, and studio is where the action is. studio attendance is mandatory because sharing and discussing designs with others is central to design. To receive credit for attending, you must arrive on time (no more than 5 minutes late) and stay for the entire session.

You are allowed two absences for the quarter without penalty; thereafter you will receive zero credit for any missed studio. Please let your studio leader know if you will be absent. Excusable absences include family emergencies, 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.

Grade composition & scale

Students must sign up for a letter grade on Webreg (if a student signs up as pass/fail, they will not earn credit). At the end of the quarter, percentages are translated into letter grades in the standard way. For example, 90.4% (217/240) would earn an A-. In this class, as with any, the grade you earn reflects your performance. We never 'mark off' for anything. The course grade comprises:

  • Assignments: ~66% (157 pts).
  • Quizzes: ~14% (33 pts). 11 points each. Four given; lowest dropped. Answers can earn partial credit.
  • Self & team assessments: ~4% (10 points; 1 each)
  • Submitting Lab exercises: ~8% (20 pts; 2.5 each, drop one)
  • Participation: ~8% (20 pts). Because different students like to contribute in different ways--and also are in different time zones--there are several ways to earn participation: Answering peers' Piazza questions; asking questions and participating in class; offering peers' feedback and participating in studio; helping peers in lab; and/or attending office hours. You may focus on one area or combine them as best fits your style and schedule. Three studio absences: max 15p. four: max 10p. five+: max 5.

While someone that's silent (or close to it) by definition isn't actively participating (much), 'airtime' is not the same as contribution value. If you seek a top score in an event where expert assessments may vary a bit (and much of life is this way), the best strategy is too overshoot by a little.

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 an activity that involves attempting to receive a grade by means other than honest 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


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

Post it to the forum — don't send email. This includes all questions about assignment clarifications and class requirements. While 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. Similarly, 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 ;)

Please only mark a post as private if it contains sensitive information. All other posts should be visible to the entire class so that everyone has the same information.

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

With nearly 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 respond to all public Piazza questions within 24 hours; we respond to all private Piazza questions within 48 hours. If you have a class question, make sure to post as public so others can benefit.

What the course covers

How much time should I expect to spend?

By university guidelines, students should plan on averaging 15 hours a week for a 5-unit class. 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?

Nope! There are closed-note in-class quizzes…

What will the quizzes cover?

Anything in class is fair game: lecture, lab, studio, videos, & the web site (hint: including this logistics page). You may not use any outside resources during the quizzes.

When do we form groups?

In studio on the second Friday of the quarter. You may work with anyone in your studio. Ask potential teammates two questions: 1) When are you available to meet? 2) What level of performance to you intend to achieve? Form a team with peers who have compatible answers to yours.

Attendance and Waitlist

What do I do if I'm waitlisted?

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

If you would like to be admitted, complete the assignments and attend any studio, turning in work physically. If/when you are admitted and sign up for a studio, we will credit this work.

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. For assignment submission on, email your UCSD email and ID number to our Daniel Kong, tell him your Studio time and your studio leader's name

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

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. We strongly encourage you to start early so that if issues arise you're not pressed up against a deadline.
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.


Our studio has one too many people to make teams of 3 (e.g., 13 or 16), or one too few people to make teams of 3 (e.g., 14). What do we do?

You have two options. If you have an extra person, one person is welcome to switch to another studio. Alternatively, the studio may include a team of 4. If you are short a person, you’re welcome to post on piazza to attract a third teammate. Alternatively, the studio may include a team of 2. In such anomalous cases, the team of 2/4 will have appropriately scaled expectations.

Can I request to work with my friends in the same studio?
You are welcome to list the same preferences, but due to the size of the class we cannot guarantee you will be placed in the same studio.
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 request that the team attend office hours to discuss the issue. If this discussion doesn't fix 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.

They dropped the class!

If your teammate drops the class, the first thing you should do is post on Piazza and try to find another teammate/team. If that fails, speak with your studio leader. We'll scale expectations accordingly.


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.

May I build on modules, like the ones on the jQuery website?


The free Heroku account is limited to 5 apps. What do we do?

As a group, you’re required to keep the 6 most recent assignments in Heroku. You may distribute this across your three teammates, or give Heroku your credit card info to add more apps.

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?

Yes, as long as you 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.


Do I have to do the stretch goal?


What is the 'out of the box' column in the rubric?

Design can excel in many ways, and often the best designs are unanticipated. You can do good design by following the rules, but to achieve great design you need to transcend them. Great design is also rare. To acknowledge and encourage this, the very top score in each assignment rewards unusually creative, out-of-the-box work. About 5% of submissions earn these points. If it helps, you can think of this as kind of like an A+.