1. Program Correctness (65%): The programs do everything that the lab requires.

    1. Binary Tree Library (20 points)
      1. Compiles and and correctly runs either bst_test_option1.c or bst_test_option2.c, depending on which implementation option was chosen (20 points)
    2. Word Count (15 points)
      1. The words have the correct frequency counts (7 points)
      2. The words are printed in alphabetical order (4 points)
      3. Error Checking (4 points)
        • Check that word_count has the correct number of command line arguments.
        • Check that the input file can be successfully opened.
    3. Family Tree (30 points): Deduct 20 points if the solution does not use a binary search tree to associate names with family tree nodes.
      1. Correctly echos out all the lines in the input (5 points)
      2. Correctly calculates the position of each node (17 points): The calculated totals may differ from mine by 1 or 2 pixels per node
      3. Error Checking (8 points) (2 points each)
        1. Check that the number of command line arguments is correct
        2. Check that the input and output files can be successfully opened
        3. Every parent must have at least one child so ensure that each line in the input has at least two fields, one for the parent and at least one for a child.
        4. Check that the input file is not empty (i.e., there must be at least one line of input)
    4. 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.

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

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