CS 9 Syllabus (Autumn 2021)

I’m looking for information specific to Autumn 2021.

You can find the instructors, lecture times and locations, office hour information, and more on the front page.


To provide an informative overview of (and plenty of practice for) the technical interview process, and to offer career and resume advice (e.g. don’t include one of these vapid “Objective” sections) :)

Soft Prerequisite

CS 106B or equivalent coding ability. We expect you to be familiar with basic data structures (lists, arrays, sets, heaps, queues…) and comfortable with at least one programming language.


Lectures will be recorded but not live-streamed. Recordings will not be of professional quality and are only intended as backup.

Course Materials


If there is anything in particular we should know / can do to help you succeed in this class, please email both of us (and include any letter you may have from the Office of Accessible Education). Please visit oae.stanford.edu for more information.


In-person attendance is required for registered students; you must attend 7 of the 9 lectures. If you do not feel comfortable attending in person, we recommend that you instead audit the course (see below).

That said, if before a lecture you have even the slightest worry that you might be symptomatic, please do not attend that lecture in person even if you are registered for the course; watch the recorded lecture instead, and then ask us for the password to enter on Gradescope. You will be at no disadvantage for having done so, and your peers will thank you! We never want to incentivize risking your own (or others’) health.

This policy is subject to change, of course, depending on how the pandemic unfolds.

Waitlists and Auditors

If you are on the waitlist or wish to audit the course, we ask that you not attend lectures in person, since we do not want to overcrowd the room given the current COVID situation. Please email both of us and ask to be added as an observer on Canvas, where you will be able to watch the recorded lectures and access any other course materials. (Waitlisted students who later enroll will be able to retroactively get attendance credit for those lectures.)

Grading and Coursework

On Gradescope, there will be one entry for each lecture, and one “additional work” entry for each week of the course.

In each lecture, we will give a password to students who have attended live; you can enter this password on Gradescope. The password will not be available on the recording, but if you have missed a lecture due to unavoidable reasons (e.g. concerns about your health status, or having added the course late), you can email us for the password after you watch the recording.

The “additional work” entries are where you can tell us what you have done beyond attending class, and how many hours you spent (rounded to the nearest half-hour). We will suggest activities for each week, and we prefer that you prioritize those, but in general you can earn credit for any of the following:

We expect your “additional work” to be tangible and quantifiable (e.g., “applied to 2 internships; revised draft of resume”), but you don’t need to go into a lot of detail – better to use that time toward your career goals! You can also feel free to share thoughts about the class, advice to pass on to other students, etc.

You earn 2 points for each lecture and 0.5 points for each half-hour of additional work, but “additional work” points are capped at 2 per week. This is to encourage you to space out your efforts throughout the quarter.

CS9 is graded on a Satisfactory / No Credit basis. To get a Satisfactory grade, you need to accumulate 25 points overall, at least 14 of which must come from lectures. That is, you must attend at least 7 of the 9 lectures. We hope to make them as worthwhile as possible, and there really wouldn’t be much point in taking the course if you just wanted to do 25 hours of Leetcode, for example!

Note that you do not necessarily need to earn “additional work” points every week, nor is there any additional benefit for exceeding the 25 point threshold, apart from the inherent reward of the work itself.

These requirements still apply if you add the course late; it just means doing some catch-up work. That said, we will be flexible regarding unforeseen circumstances, e.g. if you are out for a while due to illness or other factors. If at any point you feel you are in danger of not passing, please reach out to us (if we haven’t already reached out to you first). We want everyone to pass!

Other Resources

Make sure you are getting emails from the Stanford recruiting mailing list.

Places to practice: LeetCode, HackerRank, platforms such as TopCoder and Google Code Jam