Students are great challengers of protection mechanisms. When the systems programming course is given at M.I.T., we find that due to the large number of students participating it is very difficult to personally grade every program run on the machine problems. So for the very simple problems -- certainly the first problem which may be to count the number of A's in a register and leave the answer in another register -- we have written a grading program that is included as part of the operating system. The grading program calls the student's program and transfers control to it. In this simple problem the student's program processes the contents of the register, leaves his answer in another register, and returns to the grading program. The latter checks to find out if the correct number has been left in the answer register. Afterwards, the grading program prints out a listing of all the students in the class and their grades. For example:
VITA KOHN -- CORRECT RACHEL BUXBAUM -- CORRECT JOE LEVIN -- INCORRECT LOFTI ZADEH -- CORRECTOn last year's run, the computer listing began as follows:
JAMES ARCHER -- CORRECT ED MCCARTHY -- CORRECT ELLEN NANGLE -- INCORRECT JOHN SCHWARTZ -- MAYBE(We are not sure how John Schwartz did this; we gave him an A in the course.)