The homework assignments will have two sections: Exercises and Problems.
We recommend that you complete the Exercises on your own. (But if you happen to chat about them with a fellow CS161 student that's okay; please acknowledge your collaborators).
The Problems can be completed in small groups of current CS161 students (up to four). In both cases, ** you must type up your own solutions, ** and for each problem you must list the students you collaborated with.

- The following is
**OK**: You and your friend work through the problems together over a couple of days. You bounce ideas off each other, and eventually come up with a pretty good solution idea. You sit down at your computer and type up that idea in your own words, perhaps lightly consulting notes you took while working with your friend. - The following is
**NOT OK**: You and your friend work through the problems together over a couple of days. You bounce ideas off each other, and eventually come up with a pretty good solution idea. Your friend types up their solutions first; since you helped come up with the answers, you use your friend's write-up as a starting point for your own. - A good test: if you ever share your typed-up solutions, or if someone shares theirs with you, it is probably
**NOT OKAY.**

We all make mistakes, even when grading. You may submit a regrade request for homework on Gradescope. Please include a thorough description of the error that the grader made. You must submit a regrade assignment within one week of having your graded work returned, by the end of day (i.e. 11:59 PM). Some notes:

- We will
**regrade the entire assignment**on a regrade request. This means you may lose more points on other problems if we discover grading errors in the other direction. - Your regrade request will go to the TA who graded your work originally, as well as to the instructor.
- Legitimate regrade requests include:
- The points were not added correctly.
- The comments say I'm missing part (c), but it was actually on a different page.
- The comments say that my algorithm is incorrect on this case, but I implemented my algorithm and it does work in that case.

- Illegitimate regrade requests include:
- I disagree with the rubric; I should have gotten more partial credit for my solution.
- I understand that my solution wasn't clear, but what I
*meant*to say was correct.

** Homework: ** You have ** six late days ** to distribute as you like among the seven homework assignments, with a maximum of two per assignment.
Each late day is an extension of 24 hours. So if the assignment is due Friday at 3pm, you may hand it in by Saturday at 3pm and use one late day, or by Sunday at 3pm and use two late days.
** You are responsible for keeping track of your late days! ** You can always ask to find out how many you have left.

No credit will be given for homework turned in two days after the due date, or for late homework after all late days have been used. Please email cs161-win1819-staff@lists.stanford.edu for special circumstances.

** Exams: ** Please do not miss the exams! If you know you will have a conflict, email
cs161-win1819-staff@lists.stanford.edu ASAP.

The elements of your grade are:

- 7 homework assignments (35%)
- Midterm (25%)
- Final Exam (40%)
- Bonus Points (see Bonus Point Policy below).

Your score on each assignment will be normalized to become a number (points scored)/(points possible) between 0 and 1, and these numbers will be added together with the above weights to obtain your final numerical grade. The numerical grade will be converted to a letter grade at the end of the course, based on the distribution within the class and the historical grade distribution for CS161.

After your final numerical grade and letter grade has been computed, the Bonus Point Policy (below) will be enacted, which can boost your final letter grade.

Throughout the quarter, there will be opportunities to get "bonus points" (for example, extra problems on homework sets, the Bug Bounty Policy below; we will also award a bonus point for extremely nice solutions to normal homework problems). These points are not officially worth anything. However, at the end of the quarter, if your numerical grade puts you near to a letter-grade cut-off then if you have lots of bonus points (compared to your classmates) you may be "bumped" above the cut-off. (You cannot be bumped down.) For example, if your numerical grade is 0.81 and the cut-off for an A- is 0.82, then bonus points could promote you from a B+ to an A-.

We hope that all course materials are bug-free. ** However, ** if you find an error in course materials (slides, iPython notebooks, or PSETs), point it out to us! (Email marykw or post on Piazza). The first finder of each error (that affects understanding) will get one bonus point. (See above for how bonus points will be applied).

"Errors that affect understanding" include pretty much anything other than little tpyos in wrds -- although we'd be grateful if you point those out too. For example, if there is incorrect arithmetic on a slide, or indexing errors in pseudocode, or a conceptual error (without a disclaimer), or if there's some piece of crucial information that's missing from a problem, those all count as errors that affect understanding. Please point these out to us! You'll help us, your classmates, and yourself (via bonus points). It's a win-win-win situation!

Course policies must adhere to course policies. (This is a joke).