Policies and procedures

This page is where we will try to explain the administrative aspects of the course requirements and our expectations of you. Let us know if you find an issue that we have overlooked that you think would be of general interest to the class.

** What is the course policy on collaboration?

In general, what you submit for grading is expected to be your original work. Refer to our collaboration policy for more information on what we do and don't consider acceptable. The Stanford Honor Code is taken quite seriously in this course and all violations will be handled through the Office of Community Standards.

** Can/should I work with a partner on the programming projects?

You have the option of working with one partner on the programming projects. The project requirements are the same regardless of whether you work alone or with a partner. Having a partner can mean less coding per person but you are responsible for fully understanding all the code, even parts you didn't directly work on. Pairs will receive the same grade for the assignment. Please note that we can only grade what you turn in. If your partner fails to implement their part, then you both will lose points. Get a partner that you trust. Also be sure you are clear on the specific collaboration rules for partners. Please also note that if you want to switch partners you must notify us before the start of the next assignment. This means that all pairs must let us know about partnerships before the first assignment. If you decide to keep your partner between assignments, however, you do not need to notify us.

** How do we submit assignments?

All programming assignments are submitted in electronic form on the rice.stanford.edu UNIX systems and they are due by 11:59pm of the day listed on the syllabus. You should build and test in the rice.stanford.edu environment before submission since that is where the programs will be exercised for grading. Written assignments are due by 11:59pm of the day listed on the syllabus. They are submitted electronically on Gradescope.

** What about late assignments?

Refer to our late policy for more details.

** How are assignments graded?

The assignments are evaluated mostly on correctness and the bulk of the grading is done by examining the output. We run your program through the various test files and compare (diff) your output to the output of our solution. Your best bet is to thoroughly test your program on the provided test files, and make up others of your own until you feel confident in your results. We will not spend a lot of time examining your source and/or giving design feedback. It is not that we don't consider style or design is important, but by now all of you have taken a course like 107 and we hope you have internalized and practice good coding practices as a matter of habit. Thoughtful design and coding will improve your chances of having a correctly working program, too. Also note that we will not be poking around trying to fix broken submissions that don't compile or fail to execute properly on our tests; only limited partial credit will be given in such situations.

** What about regrades?

If a programming assignment has a single, simple mistake that causes you to miss multiple test cases, you may submit for a regrade. The request must be within 1 week of when the assignment is returned, and you must explain in writing why you feel the regrade is justified. Partial credit will be restored only for fixing small bugs that caused many points to be lost; implementing missing features (even if they don't require much code) or fixing serious problems (generally defined as having to make changes in several places in the code) are not eligible for regrades.