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.

** How do we submit assignments?

All programming assignments are submitted in electronic form on the leland UNIX systems and they are due by 11:59pm of the day listed on the syllabus. You should build and test in the leland 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?

Each student is granted 3 late days for the entire quarter. A late day extends the deadline by 24 hours. If you have a partner, both of you must have remaining late days in order to extend the deadline for your submission. Once you have expended all your late days, the deadline is firm and we will not accept late submissions.

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 2 weeks of when the assignment is returned, you must explain in writing why you feel the regrade is justified, and you must also submit the new version of the code and a diff showing the changes that were made. 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.