CSCI 2310
Operating Systems

Bowdoin College
Fall 2015
Instructor: Sean Barker

Autograder Overview

CSCI 2310 uses a system for automatically grading your projects. This isn't (just) because grading is tedious; the autograder is designed to help you do the projects correctly, and provide feedback in a timely fashion.

Many parts of the autograder were developed at the University of Michigan by Pete Chen, Brian Noble, Atul Prakash and others. Many thanks to Jeannie Albrecht for providing documentation on setting up the autograder!

To help you validate your programs, your submissions will be graded automatically by running them against a series of test cases (in which your program's output is compared to the correct output), and the results will be mailed back to you. You may then continue to work on the project and re-submit. Be warned that the results from the autograder will not be very illuminating; they won't tell you where your problem is or give you the test programs. The main purpose of the autograder is to help you know to keep working on your project, rather than thinking it's perfect and ending up with a completely broken program. The best way to debug your program is to generate your own test cases, figure out the correct answers, and compare your program's output to the correct answers. Designing test cases will also give you a better understanding of the concepts covered by the project.

The basic policy of the autograder is as follows:

In addition to the autograder's evaluation of your programs' correctness, I will evaluate your programs on issues such as the clarity and completeness of your documentation, coding style, efficiency, understandability of your code, etc. Your final score will be a combination of the hand-graded score and the autograder score.

Accessing the CSCI 2310 Server

The autograder is installed on a dedicated CSCI 2310 server. You have been provided an account on this server that will allow you to log in and submit your projects to the autograder. You are also encouraged (though not required) to develop your programs on the server.

Note: If you choose to develop on a machine other than the autograder server (e.g., your laptop), remember to test it on the server before submitting. If you submit a program that does not compile on the autograder server (even if it compiles on your own machine), you will waste one of your autograder submission!

Access to the server requires the use of a keypair, which you should have received via email from me. Your keypair consists of a private key file (named something like username-keypair) and a corresponding public key file (named something like username-keypair.pub). Keep your keypair safe, as it provides exclusive access to your server account. Don't send anyone your keypair file - this is like giving them your password!

The hostname of the CSCI 2310 server is sbarker.campus.bowdoin.edu. To login to the server using your private key (assuming userid is your username), you can issue a command like so:

ssh -i userid-keypair userid@sbarker.campus.bowdoin.edu

Note that you can only access the server from on-campus.

If you get an error that references the permissions on your keypair file, you can fix that using the chmod command, then try running ssh again:

chmod 600 userid-keypair*

On Windows, you can similarly login using an application like PuTTY. You can only login to the server using your private key file; password-based logins are disallowed.

The server provides a full-fledged Linux environment with all the standard development tools (editors, compilers, version control, etc) preinstalled. If there is any software that you would like to use that is not already installed on the server, please email me.

Using the Autograder

Once logged into the server, you can submit projects to the autograder using the submit2310 command, like so:

submit2310 <projectnum> <file1> <file2> ...

Note that all C++ source files should end in ".cc". For example, for Project 1 (the inverter), you should execute the command:

submit2310 1 inverter.cc

The system will package up your project and send it to the autograder. Within an hour or two (and likely within a few minutes) you should receive an email telling you how you did. Be sure that emails from the autograder are not trapped in your spam filter. If you do not receive a response within 4 hours of submission, please email me. The official time of submission for your project will be the time the project is received by the autograder. If you send in anything after the due date, your project will be considered late (and will use up your late days or will receive a zero).

Remember that the autograder is not a debugger; while it will tell you how your program did, it will not tell you what you did wrong. Also remember that the earlier you start on the projects, the more autograder submissions you will have.