Written by Julie Zelenski

Assignment materials

Frequently asked questions about assignments

What is the expected assignment workload?

There are ~8 assignments over the quarter, spaced about weekly. The programming assignments are considered quite challenging and students self-report spending between 10 and 20 hours on each. Starting early and making steady progress has generally been a more successful tactic than attempting to cram the work into a single marathon session at the last-minute.

What programming environment and tools are used?

Students use their sunet accounts on linux myth machines, which are physically located in the Gates basement and support remote login. We use a suite of open-source development tools including gcc, make, gdb, valgrind, and Mercurial. Assignments are distributed to students as repositories, students edit, compile, and debug on the myth systems.

What is the policy on late assignments?

Students are rewarded with a bonus for on-time submission; there may be a small grace period that allows late work to be submitted. Read our detailed late policy for more details.

What is the assignment collaboration policy?

The programming assignments are to be done individually and should represent independent, original work. We adhere to the CS department Honor Code policy and offer specific examples of its application to CS107 coursework in our course collaboration policy. All students are responsible for carefully reviewing both of these documents and acting in accordance with them. We run all assignment submissions through a very thorough plagiarism detector and all suspected violations are handled by Stanford's Office of Community Standards.

How do I submit an assignment?

Assignments are submitted online using our submit tool on the myth systems.

How are assignments graded?

We consider both functionality and code quality. For functionality, we assess your program's effectiveness from an external perspective by testing its behavior on a broad range of inputs. For code quality, we run quality-based tests and read the code to see how readable, well-designed, and coherent it is. More detailed info about how assignments are graded.

How are assignments weighted?

The total number of points for an assignment is noted in its writeup. The points indicate the weight of that assignment relative to the others; i.e. an assignment graded out of 100 points has twice the weight of one graded out of 50. The coursework component (labs and assignments together) determine 50% of your course grade.

Do the assignments offer extensions for earning extra credit as in CS106?

No, but it's unlikely that you'll find the base assignment much too easy or boring! We pack them full of plenty of challenges and have high expectations of your work. Once you've nailed your submission, we have no further ambitions to own your time and encourage you to celebrate with a nap, a run, a conversation, or a good book.