Contribution Guidelines

Thank you for taking out the time to contribute to this site. You will have to sign in before you can contribute.

The following fields need to be filled in:

Name: A nice creative name for the problem.

Categories: Categories the problem belongs to.

Description: Funny stories are nice, but make sure you convey the essentials of the problem in a clear, concise manner.

Examples: These are an essential part of the problem description, clarifying what is meant by the plain English description. Use doctest format.

Skeleton: What you want the student to start with. This should include hints or other comments, and any non-fundamental details, such as where to find a particular function in an import, or the final roundoff in a returned float.

Tests: These are the detailed doctests that cover all possibilities, including "off-by-one" errors, and other edge cases. Include your examples also, so they can be saved as unit tests if you later change or delete an example.

Other tests: This field is optional. These are doctests you don't want the student to see. This is to see if a student really got it right, or is just taking a shortcut. Let's say he submits a solution, and sees that he has a failure on a test that expected 4, where his solution returned 3. Instead of figuring out that he has an "off-by-one" problem, due to his misunderstanding of the way the range() function works, he just sticks in an initial test. If the inputs match exactly the failing testcase, return 4. He gets full score on the problem, but hasn't really solved it.

Solution: This field is optional. Students may see this if we decide to add a "Show Solution" button, so make it an example of good programming.