uWaterloo Logo

Using Marmoset

CS 241 — Foundations of Sequential Programs


CS241 uses Marmoset to test all student assignments.

If your submitted program does not compile or run successfully on its own, your submission will receive a result of "did not compile" and the detailed test results will contain something similar to the error message you get if you ran your program yourself. In this case, your submission will not be tested with any of the tests.

If your submitted program runs successfully on its own, it will be tested with all of the public tests.

If it fails any public test, the detailed test results will display an error message for that public test. In this case, your submission will not be tested with any of the release tests.

If it passes all of the public tests, you will have the option to see information for the release tests. If you do so, you will use up one of your "release tokens" for that question. Normally, for every assignment question, you will be initially given 3 release tokens. If you use up one or more of them, one release token will regenerate once every 24 hours, until you have 3 release tokens again. Start your work early if you want to have more chances to see the results of the release tests. If the deadline will expire before your token regenerates, you can still submit, though you will not be able to tell how your submission did on the tests.

Marmoset automatically tests each submission with all of the release tests, in some order specified by the course staff. If your submission fails a release test and you use a token to see the results, you will only see that test and one more test in the detailed test results. If your submission passes all the release tests, you will not see any release tests in the detailed test results, but you will be credited with full marks for that question.

If you fail a release test, you will get a very small amount of information about what went wrong. You will not be given details of the test case that you failed. Do not attempt to guess what that test case might be; do not ask about it on piazza, and do not speculate about test cases on piazza. The correct action when failing a release test is to re-examine your own test suite and redesign it to find the error in your code or your assumptions. The purpose of assignments is to give you exercise in the concepts and skills discussed in lecture. The point is not to earn marks by any means possible; marks are a consequence of the understanding gained through practice.

You can continue to submit and see the result of release tests after the deadline has passed, though post-deadline submissions do not affect marks. It's a good idea to finish questions on which you ran out of time, to make sure that you've done all the learning.

Marmoset downtime

If Marmoset fails to accept submissions for more than two of the six hours immediately prior to the deadline, or is down at the deadline, a 12-hour extension will be granted. For an extension to be granted, Marmoset must fail to accept submissions; failure or delay in displaying results is not grounds for extension. It is bad practice, and risky, to rely on Marmoset as your primary means of testing. The failure must be due to problem with Marmoset or a widespread network failure; your home connection is your own responsibility.