Return to the Project #1 Index

Project #1 Postmortem Analysis

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