Homework Policy

There will be a total of ten homework assignments in CS 307. Homework assignments are administered through PrairieLearn. These homework assignments will serve as practice for the quizzes. Questions will generally be presented in one of two forms: checkbox or numeric input. The practice homework, Homework 00, will provide you with examples of both types of questions.

To access the course’s PrairieLearn content, simply navigate to prairielearn.org and add the course.

Grading and Deadlines

Homework assignments in CS 307 are low-stakes, unlimited attempt assessments. That is, there is no penalty for submitting incorrect answers, and your score can only go up, never down.

Partial Credit

Partial credit is available for most questions. For numeric questions that require multiple inputs, partial credit is based mostly on which inputs you supply correctly. For partial credit on checkbox style questions, each individual checkbox provides \(1 / n\) points where there are \(n\) checkboxes total for the question. For each checkbox, you obtain \(1 / n\) points if you check the box correctly, or if you leave the box unchecked correctly.

Buffer Points and Multiple Deadlines

No homework assignments will be dropped. Instead, there will be opportunity to earn buffer points with each homework.1 Buffer points will allow you to obtain over 100% for a particular assignment, but your percentage on homework overall cannot exceed 100%.2 To allow for buffer points, each assignments will have multiple deadlines, for differing credit.

The buffer point and submission deadline details can be seen in the details of each quiz on PrairieLearn. As an example, consider Homework 01:

  • 105% Credit: Tuesday, January 30, 11:59 PM
  • 100% Credit: Tuesday, February 6, 11:59 PM
  • 75% Credit: Tuesday, February 13, 11:59 PM

To obtain the 105% credit, you must achieve a raw score of 100% before the deadline for 105% credit.3 For homework deadlines, we will generally refer to the date to obtain 105% credit in causal conversation, but don’t forget the additional deadlines!

Python

You are allowed to and expected to use Python to solve many homework problems.

Rounding and Precision

Do not round any intermediate calculations. More generally, unless explicitly asked to, you should never round any calculations in CS 307. When submitting answers to numeric questions, copy-paste all digits reported by Python. Do not attempt to change the default number of digits that Python displays. If for some reason you feel that you have the correct answer, but it is not being accepted by the autograder due to a precision issue, please alert the course staff. Again, do not modify the number of digits that Python displays.

When Python prints a number, it is often only showing you some of the precision that it has stored.

import numpy as np
print(np.pi)
3.141592653589793

Obviously, we know that \(\pi\) as many more digits than this. Are these all the digits Python uses when you use np.pi for a calculation? Nope! It is just the digits that Python displays by default, many more digits are in some sense stored.

print(f"{np.pi:.25f}")
3.1415926535897931159979635

However, interestingly, for many applications, only a few digits of \(\pi\) will get the job done!

Note that, because of this, you should never copy-paste Python output then re-paste it into a script. Doing so will cause you to accidentally lose precision!

JupyterLab Workspace

You may complete homework assignment by using Python however you like. Mostly, we recommend VSCode and the setup that we use in-class and have described in the Getting Started document.

However, because quizzes will be completed in the CBTF, you will only have access to JupyterLab through PrairieLearn to complete your quizzes. Thus, it would be a good idea to practice using JupyterLab through PrairieLearn for some of your homework assignments. For quizzes, by coding within the notebook, you will be providing the course staff a record of your “work” that they can reference later should anything go wrong with the autograder.

For each homework, within the workspace (which will always be accessed via the first problem of the assignment), you will see a Jupyter Notebook named homework-xx.ipynb in the left panel. This notebook will contain any definitions, formulas, etc, that you are not expected to memorize.

As you practice using JupyterLab through PrairieLearn, please pay close attention to the available keyboard short cuts.

  • To access to docstring for a function or class, use shift + tab.
  • In many places, using tab will trigger the autocomplete menu.

Footnotes

  1. These buffer points are not extra credit. They function slightly differently.↩︎

  2. See the Syllabus for additional details on grading calculations.↩︎

  3. Unfortunately, the 105% credit cannot be given on a per-question basis. So instead, once you answer everything correctly, your score jumps from 100% to 105%.↩︎