Homework Policy

There will be a total of eight homework assignments in CS 307. Homework assignments are administered through PrairieLearn.

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


Homework assignments will be low-stakes, unlimited attempt assessments. That is, there is no penalty for submitting incorrect answers, and your score can only go up, never down. These homework assignments will serve as practice for the exam. No homework assignments will be dropped. Instead, there will be opportunity to earn buffer points with each homework. Buffer points will allow you to obtain over 100% for a particular assignment, but your percentage on homework overall cannot exceed 100%.

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

  • 105% Credit: Thursday, September 7, 11:59 PM
  • 100% Credit: Thursday, September 14, 11:59 PM
  • 75% Credit: Thursday, September 21, 11:59 PM

To obtain the 105% credit, you must achieve a raw score of 100% before the “due” date for 105% credit. For homework “due” dates, we will generally refer to the date to obtain 105% credit.

Unless otherwise specified, assume you cannot load any external Python packages or source any additional files.

Homework will be released one week before the 105% credit deadline, at the latest.

Tips and Tricks

  • Before submitting to the autograder, you should run your code locally and verify that it produces the expected output.
  • If you are asked to write a function, you should test it locally by supplying potential values for each parameter.
  • We do not recommend editing code directly in PrairieLearn. It is highly recommend that you edit your code using a proper text editor such as Visual Studio Code. It would also be wise to keep local copies of your work.
  • Unless a question notes otherwise, you do not need to defend against improper input to your functions. That is, you can assume we will test your code with input that agrees with the descriptions of the parameters in the question statement.