1. Program Correctness (65%): The programs do everything that the lab requires. It is possible to get partial credit on this lab by completing certain steps but not others. If you have a question about how a program handles a certain input, check the executables that have been provided. Subtract 50 points if students do not use a hash table to implement the search structure.

    1. Separate chaining
      1. Correctly calculates the tablesize (3 points)
      2. Assigns names to the correct buckets (8 points))
    2. Quadratic probing
      1. Correctly calculates the tablesize (3 points)
      2. Correctly rehashes if the initial estimate of entries is too small or if the load factor exceeds 0.5 (5 points)
      3. Correctly restores the hash table to its previously form if rehash fails to insert an existing key into the resized hash table (3 pts)
      4. Assigns names to the correct buckets (8 points))
    3. Scoreproc
      1. Correctly indicates whether or not a person is in the score files (6 points)
      2. Correctly prints the information associated with a particular person (6 points)
    4. Scoreproc_unix
      1. Correctly indicates whether or not a person is in the score files (6 points)
      2. Correctly prints the information associated with a particular person (6 points)
    5. General (for both scoreproc and scoreproc_unix)
      1. Correctly handles multiple score files (3 points)
      2. Output is correctly formatted (3 points)
      3. Error checking (5 points)

  2. Design Document (15%): A reasonable effort has been made with the design document and it has been submitted on time. 0 points for a late design document.

  3. Commenting (10%): See the commenting information on the course's web page for advice on how to comment your programs,

  4. Program Style (10%): Are the programs well-organized and do they solve the problem in the most straightforward, efficient