CSCI 432 - Fall 2023

Operating Systems

Home | Calendar | Assignments | CS@Williams

What is the Autograder?

CS432 uses a system for automatically grading your projects. This isn't because I'm lazy; the autograder is designed to help you do the projects correctly, and provide feedback in a timely fashion.

CREDIT: Many parts of the autograder were developed at the University of Michigan. Much thanks to the creators!

To help you validate your programs, your submissions will be graded automatically, and the result 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 auto-grader 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 auto-grader is to help you know to keep working on your project (rather than thinking it's perfect and ending up with a 0). 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. This is also one of the best ways to learn the concepts in the project.

You may submit your program as many times as you like. However, only the first submission of each day will be graded and mailed back to you. Later submissions on that day will be graded and cataloged, but the results will not be mailed back to you.

Beyond this one-per-day policy, you will be given 5 bonus submissions per project that also provide feedback. These will be used automatically--any submission you make after the first one of the day will use one of your bonus submissions. After your bonus submissions are used up, the system will continue to provide feedback once per day.

In addition to the auto-grader'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, and understandability of your code, etc. Your final score will be the product of the hand-graded score and the auto-grader score.

Submitting Your Work

Use the submit432 script to submit your files from any lab machine. The full name is /usr/cs-local/432/bin/submit432, but you should add /usr/cs-local/432/bin to your path so you don't have to keep typing in the full name. (Ask your instructor or TA for help with this if you don't know how to do it.) submit432 submits the set of files associated with the project part and is called as follows:

submit432 <projectnum> <file1> <file2> <file3> ... <filen>

Note that all C++ programs should end in ".cc".

For example, for Project 0 (inverter), you will execute: submit432 0 inverter.cc

The system will package up your project and send it to the autograder.  Within a few hours at most (depending on the server's load) you should receive an email telling you how you did.   If you do not receive a response within 4 hours of submission, please email the instructor. The official time of submission for your project will be the time the project is received at the grader. If you send in anything after the due date, your project will be considered late (and associated penalties will apply).

Helpful Hints

The key to using the autograding system is to:

1) "Vote early and often."  Your submissions are limited to one per day (plus bonus submissions).  This means the earlier you start on the projects, the more chances you have to get it right. 

2) Recognize that the autograder is not a debugger. The autograder will not tell you what you did wrong.  The autograder (and the instructor) is not going to tell you what the autograder is using for testcases. 

3) Testing is the only way to figure out what is wrong with your program.  Writing effective test cases is central to writing good software.

4) Do not be afaid to "throw one away".  Starting over is hard to do, but sometimes it is the best option.