Author: Stan Eisenstat
Subject: Comments on the grading of Qsort
Date: Sunday, 19 Apr 2020, 16:30:08
Comments on Qsort ~~~~~~~~~~~~~~~~~~ 1. See below for a complete description of how the grading script works. You can retrieve your grade sheet using the command % /c/cs223/bin/retrieve 4 GradeSheet All deductions from the number of tests passed are noted at the end of that file. Lateness penalties will be assessed separately. 2. If your source file(s) did not contain your name and netID, I deducted 1 point if both were missing and 0.5 point if only the name or netID was missing, when I entered the score in the grade file. 3. If your log file did not contain a statement of major difficulties, I deducted up to 1 point (depending on the extent to which your session log contained such information) when I entered the score in the grade file. 4. Your statement of major difficulties should have been 100 words or longer (i.e., at least eight 80-character lines, excluding the listing of those with whom you discussed the solution) and should include assignment-specific details. 5. If your code did not make, I created a Makefile.CORRECTED and deducted 1 point when I entered the score in the grade file. 6. You can save time by stopping and seeking help when you run into problems that you cannot resolve in 30 minutes or so. Starting early (hint!) means that you are less likely to be near the due date when this happens. If you spent 38 hours or more on the assignment (the median was 19.00 hours), you may want to meet with me for ways to reduce the time. 7. If any part of a specification is unclear or confusing, please let me know so that I can correct it. 8. When debugging, it helps to have small examples where code fails, since it is easier to trace the flow of execution using a debugger, print statements, or with a listing. 9. Please use the unsubmit command to remove any files that are not part of your ultimate solution. A. The class web page has links to scatter plots of #Passed vs #Lines, #Passed vs Time, and Time vs #Lines. Please let me know if you see any trends in this data. B. Seven of solutions did not implement quickSort correctly, as judged by the sequence of comparisons executed (see Tests/xQuick.pl). The penalty ranged from -2 to -6 points depending on whether or not the inflated number of comparisons allowed QsortH to pass Tests #403 and #404. To ensure that Tests/xQuick.pl was working correctly, I constructed short inputs for each of these codes where the sequence of comparisons is not consitent with quickSort. How the Grading Script Works ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Before the grading script ran the final test script it ran "make Qsort" using the -std=c99, -pedantic, and -Wall options (whether your makefile specified them or not). If gcc issued any warnings, it printed the message checkwarn: warning messages from gcc -c -std=c99 -pedantic -Wall under the header ***** Checking for warning messages ***** near the start of the grade sheet, and I deducted 1 point from the score that appears on the grade sheet when entering that score in the grade file. 2. After running the tests, the grading script checked for files submitted after the due date. If you submitted a LATENESS file, it subtracted the number of days you requested from the number of late days. If the result was still positive, it printed the number of late days and a listing of all files and their submission dates. The lateness penalty (5% per day or part thereof) was applied when I entered the score in the grade file. 3. Next the grading script looked for a makefile. If it did not find one, it printed a warning message checkmake: no makefile under the header ***** Checking makefile ***** near the end of its output, and I deducted 1 point from the score that appears on the grade sheet when I entered that score in the grade file. 4. Next the grading script printed the submission logs for your file(s) (excluding the log file and the makefile), showing the revision numbers, the times of submission, and how many lines were added and deleted. If the ratio of the number of hours reported to the number of submissions was sufficiently large, or if the number of lines in an initial submission or a lower bound on the number of new (not just changed) lines in some update was sufficiently large, it printed a warning message: checkrcs: too few submissions: NN in HH.HH hours or checkrcs: too few resubmissions: large submission(s) under the header ***** Checking RCS files ***** near the end of its output. In extreme cases I deducted up to 2 points from the score that appears on the grade sheet when entering that score in the grade file. In the future I will both raise the 2-point cap and deduct points in less extreme cases. 5. Next the grading script searched your log file for the one line that contains the string "ESTIMATE" and your estimate of the time required made prior to writing any code. If it did not find such a line, it printed a warning message: checklog: no line with ESTIMATE under the header ***** Checking log file ***** near the end of its output, and I deducted 0.5 point from the score that appears on the grade sheet when I entered that score in the grade file. If it did not find such a line even when case was ignored, it printed a warning message checklog: no estimate of time spent and I deducted 0.5 point from the score. If it found more than one line containing the string "ESTIMATE", it printed a warning message: checklog: multiple estimates of time spent and I deducted 0.5 point from the score. 6. Next the grading script searched your log file for the one line that contains the string "TOTAL" and the total time that you actually spent prior to writing any code. If it did not find such a line, it printed a warning message: checklog: no line with TOTAL under the header ***** Checking log file ***** near the end of its output, and I deducted 0.5 point from the score that appears on the grade sheet when I entered that score in the grade file. If it did not find such a line even when case was ignored, it printed a warning message checklog: no total of time spent and I deducted 0.5 point from the score. If it found more than one line containing the string "TOTAL", it printed a warning message: checklog: multiple estimates of time spent and I deducted 0.5 point from the score. 7. Finally the grading script may have printed a list of certain files, including: * A file named Makefile.CORRECTED, which means that your code did not make. In such cases I deducted 1 point from the score that appears on the grade sheet when I entered that score in the grade file. * A file named LOG.CORRECTED, which means that your log file did not have an estimate and/or a total in the proper format. The deduction(s) were taken as above, and where possible these values were taken from the corrected log so that they could be reported. --Stan-PREV INDEX NEXT