Written by Julie Zelenski
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.
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.
Students are rewarded with a bonus for on-time submission, late work is discouraged but handled neutrally, and there a hard deadline after which no further late work will be accepted. Read our detailed late policy for more details.
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.
Assignments are submitted online using our submit tool on the myth systems.
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.
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.
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.
In some past quarters, we have tried this, but haven't been completely happy with the results and the pacing and logistics can be very challenging in the tighter quarters. We are unsure if/how we could re-structure it for a more satisfying experience. You should plan your quarter assuming it won't be offered, which means making a solid submission the first time around. We'll let you know if we change our mind about offering it.