Grading Related Policies


Turnin:

    1. Please turnin files according to the "Turnin File List" specification at the beginning of every homework write-up. Your filenames must be the same as required (case sensitive, e.g., sum.c and Sum.c are different).
    2. If after the due time you find that you turned in wrong files, please do NOT modify (this could keep your file from being assigned a new time stamp that is after the due time) the correct file you'd actually planned to turnin. Then come to TA's and they could check your file time stamp. If the time stamp is before the due time, it can be regraded with some penalty of not turning in on time. But if the time stamp is after the due time, it won't be accepted for regrading.
    3. Make sure your program pass the compilation (for example, gcc -Wall yourprogram.c). Compilation failure will result in 0 points and won't be regrades. Compilation warnings will cause some points off.
    4. Make sure your input/output format is the same as the sample executable. Use "diff" instead of your eyes to check the output, because your eyes can't tell "\t" from 8 spaces on the screen. Suppose your executable is named "mysum" and the sample executable is named "sum". Write your testcase in a file, say named "mytestcase". Run both executable against the testcase by "mysum < mytestcase > myoutput" and "sum < mytestcase > output". The redirection will feed the "mytestcase" to the stdin and store the output in a file. Then compare the two output files with "diff myoutput output". If "diff" printout nothing and return 0, your output is correct, otherwise you need to modify your program. Please get more info on diff by "man diff".
    5. It is possible that the homework writeup and provided files (sample executable, header files, etc.) are modified after being posted. You need to check the update news frequently on the newsgroup. Any update notice on the newsgroup is regarded officially part of the homework writeup. To make your life easier, we are going to use version numbers on writeup. The version number will be put at the beginning of the writeup, so you can check if the one you are using is up to date or not.

Grading:

    1. This is how we do the grading. First, we compile your program. If fails, issue 0 points, otherwise go on to the next step. We create a number of testcases (similar to the "mytestcase" file we created above) and feed them in to your program and store your output in to a file by redirection (similar as the redirection I introduced above). Then we diff your output with our expected output. If diff returns 0, we give points allocated for this testcase, otherwise we give 0 points on this testcase. Then we go to the next testcase. If there is an infinite loop, our grading script will kill your program and give 0 points.
    2. Then scores will be emailed to your CS email account.

Regrading:

    1. TA's usually divide the grading by problem numbers and basicly do the grading separately in parallel. We will post the TA-problem# information in the grading results or README file in the grading testcases directory (/home/cs352/fall03/grading_testcases), so whenever there is some problem, please contact the correct person.
    2. If you find that a minor mistake in your program makes you fail many testcases (e.g., on the output you printed an extra space), you may modify your program and submit to TA's by email (or in person meeting during office hours) for regrading. You must show how much is modified. According to the severity of your mistake, how much is modified and the regrading testcase result, we issue new grade. Regrading request must be submitted within one week after you receive your original score.

CSc 352 Fall03
09/28/03