Machine Problem Policy

There will be a total of two machine problems (MP) in CS 307. Machine problems are administered through PrairieLearn.

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

Many computer science courses use MPs as a primary tool for assessment, and thus they can be time-consuming (but very valuable) assignments. MPs in CS 307 are not our main focus, and thus you should think of these as “mini” MPs compared to other more programming focused CS courses.1

Grading and Deadlines

Like homework, machine problem 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.

Arguments to Functions

Functions will only be tested with arguments that conform to the parameter specifications given in the problem statement. For example, if we state that a function has a parameter that is assumed to be a list of integers, we will not pass as an argument a list of floats. You do not need to defend against situations like this.

External Libraries

Unless stated otherwise, you should assume that you may not load any external Python packages or source any additional files that are not specified in the starter code.

You can assume that you will always be granted access to numpy.

Buffer Points and Multiple Deadlines

No machine problems will be dropped. Instead, there will be opportunity to earn buffer points with each MP.2 Buffer points will allow you to obtain over 100% for a particular assignment, but your percentage on MPs overall cannot exceed 100%.3 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 MP 01:

  • 105% Credit: Tuesday, January 30, 11:59 PM
  • 100% Credit: Thursday, February 22, 11:59 PM
  • 75% Credit: Thursday, May 9, 11:59 PM

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

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 on 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.


  1. In previous semesters similar exercises were included as a part of homework assignments. We have separated them for Spring 2024, partially to indicate that these coding focused exercises will not appear on quizzes.↩︎

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

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

  4. 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%.↩︎