Because we want a diverse set of ideas and backgrounds, there are no formal prerequisites. A basic familiarity with Computer Science (i.e. CS 106A) would be helpful as it informs an understanding of what these systems can and cannot do. Your final project may take different forms based on the skills and experiences that you bring to the class.

Projects and Grading


The class consists of three assignments, a midterm, and a final project. Specific directions and expectations will be given for each assignment. We will aim to provide clear guidelines and expectations for each assignment that explain how you and the staff will grade your submission. If there are any questions, please feel free to ask for clarification.

Late days

Sometimes life gets hard: assignments pile up, family situations arise, or health dips. To address these, you may use up to a total of four free late days, each is a 24-hour extension. After the late days are exhausted, a penalty of 15% of the project's score will be assessed for each day the project is late. These late days may only apply to assignments, not to the midterm or final.

Submission Procedure

To submit an assignment, go to canvas.stanford.edu. From there, go to CS278 (either from clicking on CS278 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

  • Assignments: 30%
    • Assignment 1: 10%
    • Assignment 2: 10%
    • Assignment 3: 10%
  • Midterm: 30%
  • Final project: 40%


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.

Designing Our Class Environment

It's possible for even well-intended students to accidentally alienate your peers. Comments can make unwelcome assumptions that don't fit some lives, and it's also possible for 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, and that is simply not fair and not something we want. 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.

Other Questions or Concerns

For other questions or concerns, please do not hesitate to reach out to the teaching staff. TA Office hours are by appointment and we encourage you to talk to them if there is something that has not been covered here or explained in the first week of classes.