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.
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:
The elements of your grade are:
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. Two of the homework assignments (HW3 and HW8) will be shorter and will be worth only half as much as the other assignments. The numerical grade will be converted to a letter grade at the end of the course. The final distribution will depend on the class's performance, but you can expect the distribution to be similar (not necessarily identical) to 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.
Post-Midterm Update: Due to concerns about the format of the midterm, we have made the following addition. After the procedure above has been carried out, it will be independently carried out a second time, except dropping the midterm. (We will keep the same relative weights on the final exam and the homework.) Your letter grade will be the maximum of the two letter grades. Notice that no one's grade can possibly be lowered as a result of this policy change.
COVID-19 Update: Due to the COVID-19 situation, we have made the following addition. After the procedure above has been carried out, it will be independently carried out a third, fourth, and fifth time, downweighting the final in various ways. See Piazza post @1229 for more on this. Your letter grade will be the maximum of all of these letter grades.
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.814 and the cut-off for an A- is 0.820, 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! (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!
Students must adhere to the Stanford Honor Code. The following things are examples of what will be considered a violation of the honor code in this course: