Index
Comments
Statistics
Typical Errors and Deductions
General Comments
We were pleased to see that 28% of the groups scored between 90 and
100, inclusive. It was also good to see that 50% of the course scored
80 or better. Unfortunately, we were disappointed that one third (32%)
of the class did not successfully complete the project (below 70).
We firmly believe that everyone enrolled in the course can be successful. Please remember that we're here to help -- especially if you didn't do as well as you had hoped. If you scored below 70, and you haven't had a chance to get detailed feedback from one of the staffers, please do so -- we'd love to help out.
Some seemed surprised that missing or broken major features earned major deductions. Please remember that the goal is to implement the entire project correctly. Scores in the range of 90-100 (inclusive) are typically reserved for those whose shells were near perfect in every respect. These shells typically had no more than a small few cosmetic defects.
Grades in the range 80-89 (inclusive) were reserved for those whose shells implemented all of the features, but had some functional glitches, or were nearly perfect, but were missing a major feature.
Grades in the range of 70-79 (inclusive) were reserved fro those shells with from one to three missing features, or fewer missing features combined with functional glitched.
Grades in the range of 60-69 (inclusive) were reserved for those whose shells implemented most features correctly, but were missing many features or had many functional problems
Grades lower than 60 were reserved for those with very few major features implemented correctly, many functional problems, or a combination thereof.
We believe that our grading rubric (below) was loyal to these objectives.
"Lies, Damn Lies, and Statistics"
Summary Statistics Mean: 73.72 Median: 77 Std. Dev: 23.1 Breakdown By Score Range 100: 6 (6%) 90-99: 21 (22%) 80-89: 19 (20%) 70-79: 18 (19%) 60-69: 11 (12%) 1-59: 16 (17%) 0: 3 (3%)
Typical Errors and Deductions
Description | Deduction |
---|---|
"ls" or "ls -l" doesn't work | 100 points |
bg completely fails to function | 15 points |
fg completely fails to function | 15 points |
Parser frequently rolls over with or without apparent reason | 10 points |
Failure to close pipe fds | 10 points |
Wait for process group returns after 1st process (not last process) exits. | 10 points |
No asynchronous notification | 10 points |
Failure to wait for children (zombies) | 10 points |
Simple Pipe doesn't function | 10 points |
Multiple Pipe doesn't function | 10 points |
CTRL-Z doesn't suspend process | 10 points |
Terminal group problem | 10 points |
Input redirection doesn't work | 10 points |
Output redirection doesn't work | 10 points |
dup2() performed in parent (not between fork() and exec_() | 10 points |
bg completely fails to function consistently correctly | 5-10 points |
fg completely fails to function consistently correctly | 5-10 points |
No access bits set in file created by redirection | 7 points |
Failure to unblock blocked signals before fork | 7 points |
Jobs listing race condition (child completes before accounting) | 7 points |
Parser dies on long input strings | 5 points |
echo $status returns a bogus value | 5 points |
Parser handles bad input | 5 points (each case) |
Jobs listing drastically broken | 5 points |
Failure to close pipe fds (one fd only) | 5 points |
Misc. small error | 3 points |
Internal commands appear in job list | 3 points |
eXecutible bit set in file created by redirection | 3 points |
echo $status returns a correct but poorly interpreted value | 3 points |
behavior which is not user friendly | 3 points |