On this page:
4.1 Accessing Marmoset
4.2 Submitting Assignments
4.3 Tests on Marmoset
4.4 After Submitting a Program
4.5 Interpreting Test Results
4.6 Common Marmoset Test Messages
4.7 Assessment
6.8

4 Marmoset

4.1 Accessing Marmoset

Go to the Marmoset home page and log in using your Quest/WatIAM userid and password. Click the "as" button under "Authenticate". You should only have one choice here (unless you are taking another course that uses Marmoset). Click "CS442 (Winter 2018):".

If you don’t see what you’re supposed to see in the steps above, then you are probably not yet added as a student to CS 442 on Marmoset. Contact Prabhakar to resolve this issue. Note that only registered students need to or should want to use Marmoset.

You should now be able to see the assignments that have been set up on Marmoset for CS 442 (there will be none at the start of term). You can submit your assignment files to Marmoset via the "web submission" page for each assignment question.

4.2 Submitting Assignments

If only one file is required for an assignment question, you can submit only that file. If multiple files are required for an assignment question, you must zip all of the required files and submit the zip file. Make sure that all of the required files with a required name are named correctly; otherwise, you will receive "did not compile" as the test result.

4.3 Tests on Marmoset

There are two types of tests that we will use on Marmoset in CS 442: public tests and release tests.

Public tests are designed to test whether your program works in the most basic sense possible. They are simple tests that test for trivial cases.

Release tests are designed to test whether your program is correct. You can expect these tests to test all the dark corners and special cases that can potentially break your code.

4.4 After Submitting a Program

When you make a submission to an assignment question on Marmoset, your submission will be automatically tested on a CSCF server. After a while (a few seconds to a few minutes, depending on server load and program and test complexity), the tests should finish and a result will be available.

4.5 Interpreting Test Results

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.

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 (this number may be higher for early assignments). If you use up one or more of them, one release token will regenerate once every 12 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 the forum, and do not speculate about test cases on the forum. 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.

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.

4.6 Common Marmoset Test Messages

Here are the possible results of requesting a release test:

"Success: test X passed", where X is the name of the test. This is the desired outcome.

"Error: wrong output for test X". This means that some function you were required to write did not produce the value we expected, or (later in the course) that some part of your program did not produce the output that we expected.

"Error: program ran out of resources while running test X". This means that your program took too much time or too much memory during the test. The "short result" reported should be ignored in the case of a timeout, because we use our own timeout mechanism, not Marmoset’s.

"Error: program encountered error while running test X". This means that your program halted with an error during the test.

"Error: program ran out of time while initializing". This happens if your program takes too much time when it is evaluated by Marmoset, before any of our tests are run.

"Error: program ran out of memory while initializing" (same as above, but with memory).

"Error: program failed to initialize". This happens if you have non-text elements in your program (such as values snipped out of the Interactions window and pasted into the Definitions window), or if you are doing something that is not permitted, such as file I/O.

4.7 Assessment

There is no penalty for multiple submissions. Your best submission counts. The only thing stopping you from spamming Marmoset with many submissions is your own conscience, so don’t do it. Please remember that the server is a shared resource; out of courtesy to your fellow students, do not do anything that overloads it, especially close to deadlines.