Policies and grading for the course


Course Components

There are several components to the course:

  • Lab sessions
  • Lecture sessions
  • Weekly quizzes
  • Lab reports/portfolio posts
  • Skill demonstrations


The course’s lab component meets for 2 hours. In each lab you’ll switch between working on your own, working in pairs, and participating in group discussions about your approach, lessons learned, programming problems, and so on.

The lab sessions and groups will be led by TAs and tutors, who will note your participation in these discussions for credit. Note that you must participate, not merely attend, for credit.

If you miss lab, you’ll still be held accountable for understanding the relevant material via Skill Demonstrations and Lab Reports. You can miss 2 labs without it impacting your grade (see Grading below).

Lecture Sessions

Lecture sessions are on Monday and Wednesday. You can only attend the section to which you are assigned. Depending how things go after the first week or two, we might relax this and allow attendance in any section.

In each lecture, we’ll have a paper handout (also available electronically). At the end of lecture you’ll have a chance submit your handout to Gradescope. You can do this by scanning it in the Gradescope app (for iOS and Android) or through the web interface. To get participation credit for lecture, you have to submit a handout filled in with reasonable effort. It’s fine if answers aren’t right, and some days don’t have right answers. It’s fine if things aren’t totally complete, and some days we won’t finish everything. But it should be clear from what you submit that you followed along and worked on the exercises we did in class.

If you miss class, you can submit them up until the start of the next class as late submissions. We recommend completing them while watching the podcast. We’ll have TAs on hand as backup to collect the physical paper/help you scan and submit if you have any issue submitting. See Grading below for the required submissions and how that correlates with your grade.

Weekly Quizzes

Each week there will be an online, untimed, multiple-tries quiz due on Mondays at 9 am before the first lecture session (except week 1, which will be due Wednesday before 9am). The purpose of this quiz is to make sure everyone has checked in on the concepts we will be using in lab on Monday, Tuesday and Wednesday. They are open for late submission until the end of the quarter, but see grading below for how late submissions correspond to grades.

Sometimes quizzes have associated readings or videos to supplement lecture.

Lab Reports/Portfolio Posts

Every other Monday (that’s in weeks 2, 4, 6, 8, 10) you will submit a lab report on work from the previous week or two of lab material. This will take the form of a blog post on a personal site you created in the first week. At the end of the quarter this means you’ll have a personal web site with 5 posts detailing what you learned.

For each post, our staff will review it and either give full credit or give feedback; you must respond to the feedback to receive full credit on your post. We’ll post specific final deadlines for this feedback with each assignment.

Skill Demonstrations

Several times during the quarter, you will complete a skill demonstrations – this course’s version of exams. You’ll be given a problem to practice in advance, and then in the demo you’ll demonstrate that you can do the task plus some follow-up tasks that are presented during the demonstration. You can look at the skill demonstrations from previous offerings for a sense of what tasks we assign (though we may or may not use the same types in this offering) [W22 demo 1] [W22 demo 2]

On each you’ll get a Full Pass, Partial Pass, or Try Again as your score. In finals week, you’ll have the opportunity to improve scores for some number of skill demonstrations.

There will be skill demonstrations in weeks 3, 5, 7, and 9 of the quarter. More details about how you’ll complete them will be shared in lab (you’ll practice the format and we’ll talk about scheduling them).


Each component of the course has a minimum achievement level to get an A, B, or C in the course. You must reach that achievement level in all of the categories to get an A, B, or C.

  • A achievement:
    • 8 or more lab participation (out of 10 labs)
    • All 5 lab reports completed, at least 4 with full credit/feedback addressed
    • Full Pass on any 3 of the skill demonstrations, Partial Pass on the 4th (either initially or with the final make-up)
  • B achievement:
    • 6 or 7 lab participation
    • All 5 lab reports completed, at least 2 with full credit/feedback addressed
    • Full Pass on any two skill demonstrations, at least a partial pass on the other two, OR Full Pass on 3 skill demonstrations and one missing/no pass (either initially or with the final make-up)
  • C achievement:
    • 4 or 5 lab participation
    • At least 3 lab reports completed, at least 2 with full credit/feedback addressed
    • Full Pass on at least one skill demonstration, Partial Pass or above on at least 2 skill demonstrations (either initially or with the final make-up)

Pluses and minuses will be given around the boundaries of these categories at the instructor’s discretion and based on quiz/lecture participation. I don’t publish an exact number for these in advance, but it’s consistent across the class. A general guideline is: if you submit all of the lecture handouts and all of the quizzes on time and complete, that will definitely add a + to the grade. If you submit no lecture handouts and no quizzes, that will definitely add a - to the grade. If you submit about half of each and get things generally mostly correct, there will be no modifier.

Academic Integrity

Individual assignments describe policies specific to the assignment. Some general policies for the course are here.

Lab Reports and Academic Integrity

You can use code that we provide or that your group develops in lab as part of your lab report. Your lab reports can be public. All of the writing in lab reports must be your own.

You can use an AI assistant like ChatGPT or Copilot to help you author lab reports or write code in this class. If you do, you are required to include a section of your lab report that shows:

  • The prompts you gave to ChatGPT, or the context in which you used Copilot autocomplete
  • What its output was and how you changed the output after it was produced

This helps us all learn how these new, powerful, and little-understood tools work (and don’t).

Skill Demonstrations and Academic Integrity

Instructions for skill demonstrations will be posted in the week before they happen. You’re free to collaborate with others on preparing for the skill demonstration, trying things out beforehand, and so on.

You cannot share details of your skill demonstration with others until after you receive your grade for it.

Quizzes and Academic Integrity

You can work on weekly quizzes with other students.