Course Information

The goal of this course is to give you hands-on practice with a modern human-centered design process while building a web application to serve a set of target users. Here are some logistics that will help us achieve this goal.

Computer Programming Prerequisites

In order to succeed in this course, you will need to do a large amount of web programming. You must have taken CSE 8B or CSE 11 to enroll in this course. Students who have not taken CSE 8B or CSE 11 will automatically be dropped from the course and will not receive a grade.

You also need to have taken COGS120/CSE170 since this course directly builds off of that course's content.

Team Formation

All work in this course will be done and submitted in teams of 3 or 4. It is your responsibility to form teams; the staff will help out, but we will not automatically assign anyone to your team without your permission. (Exception: if you have less than 3 people on your team, then we will assign additional people to your team.)

Due to staff resource limits, we cannot grade projects done by teams of 1 or 2; teams need to have 3 or 4 members. If you cannot find a team, then you will not have grades for the project milestones, so you will not be able to pass the course. There will be no grading extensions for students who find teams too late.

Once teams have been formed and submitted in Milestone 1, they must remain fixed for the rest of the quarter. You cannot switch teams mid-way throughout the quarter since it is not fair for your teammates who are depending on your commitment to the project. The only exception is if team members drop the course; you are free to drop the course at any time if you like. But if dropping causes a team to have less than 3 remaining members, then we may assign additional students to that team.


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.

Exams will be multiple choice; bring a pencil and eraser, or a pen. You do not need to bring a scantron form or anything else with you.

What will exams cover? Anything covered in the lecture slides and example code. You'll have to know how to read code on the exam, but you do not need to write code yourself from scratch. We won't grill you about some nitpicky code construct that appears only on the corner of one slide in tiny font; the coding concepts that you will be tested on will often appear in multiple slides. If you understand the example code from lecture, then you should have a good understanding of the required material for exams.

See the course schedule for which days' lessons are covered on each exam.

You cannot take exams early since they will not be ready until the day of the exam (they usually cover content up to the prior day's lecture).

Weekly Assignments and No-Late Policy

In your weekly assignments, you will progressively design and develop an interactive web application, which will culminate in a final presentation at the end of the quarter. You should submit your assignments as documents on your GitHub account.

No late assignments will be accepted. This is because you will present to your TA during in-class grading meetings every week, so you need to be prepared to participate. (For Milestone 1, your TA needs to give you written feedback quickly so that you can prepare to start Milestone 2 on time.)

Another reason for our no-late-assignments policy: Any of your team members can make a submission, so in case one or more members are out sick or are overwhelmed at the moment, the remaining members can be there to make up the work for a given week and submit the assignment. We give you enough advanced notice on due dates to plan around when some of you will be busy.

In-Class Grading Sessions

Your TA will grade your project milestones in person to give you the best possible feedback. This means that you should be in class for grading days to present to your TA. Even though by default all team members will receive the same grade, if your TA notices that certain people are consistently absent or not participating, then they have permission to assign a lower grade to those students.

Teammate assessments

For each assignment, you will privately assess your own and your 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 may be adjusted accordingly.

Grade composition and scale

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

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

  • team project (split into weekly milestones): 110 points
  • 2 in-class exams: 30 points (15 points each)
  • Code of conduct: 10 points. We expect everyone to get all 10 points here unless there is a violation of our code of conduct. We will inform you if you are at risk of getting points taken off here, so if you don't hear anything, you got all 10 points.

At the end of the quarter, raw point scores are translated into letter grades using the standard letter grade scale. Note that this is a minimum guaranteed grade that you will get. In rare cases when a student is near the borderline, we will consider raising their grade if there are exceptional circumstances (but see the next section).

For example (135/150) is 90%, so that would earn an A-. In this class, as with any, the grade you earn reflects your performance. There is no curve, so you are not competing with your classmates for a limited number of letter grades.

Do not ask the professor about grades

Do not email, Piazza message, or ask the professor about your grades. Everyone follows the same set of grading rules. This class rewards 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 dispute your grades. In the end, we will make final grading decisions that are the most fair for all students in the class.

Regrade requests

The teaching staff works hard to grade fairly based on rubric items. 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 the instructors on Piazza within 3 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. We will then select a second staff member to handle your regrade request, and it is your responsibility to go to their office hours to perform the regrade in person. They will regrade your entire assignment to ensure quality, and their grade will be your final score (you cannot make any further appeals). Note that they do not simply regrade the items that you want; they regrade the entire assignment from scratch. We will not accept requests made orally, via email, after 3 days, or with disrespectful language or repeatedly after denied requests.

It is very important for you to commit and push all of your changes to GitHub, because we will do regrades based on the status of your GitHub repository at the time your original grading occurred. That is the most fair because otherwise you could have changed your code since the initial grading occurred. File timestamps on your own computer can easily be changed, so we will use GitHub as the authoritative source of timestamps. Thus, we can only regrade based on the status of your GitHub repository.

There is no regrade procedure for the final assignment of the quarter due to lack of time at the end of the quarter before grades are due. (Note that in classes with final exams, you do not have an opportunity to ask for a regrade on the final exam either, so this policy is consistent with that fact.) But rest assured that we have a final in-person grading meeting where the entire staff meets to discuss each group's performance and takes that into consideration when assigning final grades.

If you hassle the staff with grading questions, that could automatically earn you a 0 score 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.

Code of Conduct

Our priority is to provide a welcoming and inclusive environment so that all students can fully focus on learning. Thus, everyone involved in the course (staff + students) should agree to show respect and courtesy to each other. To make this commonsense phrase more concrete, we have adapted the following Code of Conduct from the Recurse Center:

This course is dedicated to providing a harassment-free learning environment and community for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, religion, or anything else. We do not tolerate harassment in any form.

All communication related to this course, in person and online, should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate in this course in any context.

While this course as a whole is a professional community, it's also a community of friends. We ask you to be aware of the fact that conversations that may be appropriate within the context of a specific friendship or relationship with another member of the course may be inappropriate in a group conversation with classmates or staff members you don't know well.

Be kind to others. Do not insult or put down others in the course. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for this course.

Thank you for helping make this a welcoming, friendly community for all.

Academic Integrity

The staff works hard to help you learn course concepts and gain the skills necessary to be an ethical member of 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 degrees). Thus, we have a personal responsibility to both you and to your fellow UCSD students – and we take it seriously. So don't cheat. We will submit an allegation report on anyone we believe to be not upholding our academic integrity contract. This is processed through UCSD's Academic Integrity Office.

Aside from being bad for you, cheating is also highly inconsiderate to your classmates, since all the time and energy that the course staff spends dealing with the paperwork of cheating cases means less time to devote to the vast majority of students in class who are doing good honest work.

As a reminder, 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.