I will gladly explain my grading criteria (which was approved by Dave) or re-evaluate something that you think I misgraded. First read this document to see if it answers your questions. I will not regrade your assignment if you failed a test and wanted to redo it, or if you feel my grading system was too strict. There are adequate opportunities to make up for a bad grade in this assignment.
Average:
Median:
Commonly asked questions.
Question: My program worked on monica or my favorite Linux/BSD/IBM machine, so why did I lose all those points?
Answer: The instructions said in bold letters "IMPORTANT!: All testing will be done on the CS Sun workstations. Make sure your code works on a Sun!" That should be sufficient warning.
Question: I lost 25 points on a recursion test. Why?
Answer: Your code was tested using the nameserver a.root-servers.net, which doesn't support recursion. Try it yourself.
Question: I lost points on a "long garbage string test" What do you mean?
Answer: I set up a server that sends back 1000 characters of essentially garbage. This tests to see if you handle buffer overflow. (this is a very reasonable problem when dealing with a socket program) If you crash or loop forever, you lose points. A copy of this is running on monte.cs.rpi.edu, so use monte as your nameserver to verify this test.
Question: I lost points since I neglected network byte order. Why? Answer: You can't guarantee the byte ordering of a number. You must use htons and ntohs to be sure.