Programming Assignment 3 Grading: -------------------------------------------------------------------------------- Zach - you will grade the KeyWord and ArrayHeap classes Yinggang - you will grade the WordCloudGenerator, BSTDictionary, and BSTDictionaryIterator classes When you look at the code for your portion, take any appropriate deductions in the Style and Documentation section (or add to the ones already there) Zach - copy the testKeyWordHeap script to your grading directory Yinggang - copy the testBSTWordCloud script to your grading directory You may need to run the command: chmod a+x test* to make it executable. For each student: 1) Create a subdirectory for that student within your grading directory, e.g., mkdir Student_Annie 2) Download the student's submission from the Learn@UW Program 3 dropbox into the student subdirectory 3) Go into the subdirectory and unzip the file cd Student_Annie unzip Program*.zip 4) From your grading directory, run your test* script giving it the name of the student's subdirectory test* Student_Annie This will do the following: - create a JAVA/ subdirectory inside the student's directory containing appropriately renamed source code files from which to run the tests - compile and run tests, displaying some info about compiling and testing to the console The expected output when each script is run is in the files KeyWordHeap_expected.txt and BSTWordCloud_expected.txt So, you can do testK Student_Annie >& Student_Annie.out diff Student_Annie.out K_expected.txt to see how the student's output differs from the expected output. where K is either KeyWordHeap or BSTWordCloud The testKeyWordHeap script then - Runs KeyWordTester. If no errors are found, the only output will be "Done testing KeyWord"; otherwise, the output will indicate where there were errors. - Runs HeapTester. If no errors are found, the only output will be "Done testing ArrayHeap"; otherwise, the output will indicate where there were errors. The testBSTWordCloud script then - Runs DictionaryTester. If no errors are found, the only output will be "Done testing BSTDictionary"; otherwise, the output will indicate where there were errors. - Runs WordCloudGenerator using 9 test runs and compares the student's results with the correct results using diff. If the student's WordCloudGenerator is correct, the output will be the key and path avg info (except in one place where indicated). Note that errors here may be due to errors in the student's heap or BST, so make sure to deduct in the correct location (if the error is in the heap, then the other tester should have caught the error) Each script ends by doing the following - Prints reminders of things to check in the student's code - Removes all student files and generated files from the current directory 5) You will need to look at the student's code to check style and documentation as well as: - for BSTDictionary: to determine that insert/lookup/delete are O(height) - for BSTDictionaryIterator: to determine that no recursion is done as well as that the constructor is O(height) - for ArrayHeap: to determine that the arrays are created with the correct initial size Note that the default Eclipse tab stop is 4 spaces and many Linux utilities, like less or more, use 8 spaces as their default. Since students in this 367 aren't expected to know Linux, they really don't have any reason to think that we'd be looking at their code with tab stops set at something other than Eclipse's default. So, make sure that you look at their code with (Eclipses's default) 4-character tab stops (rather than expect them to do something like configure Eclipse to either show tabs as 4-characters or replace tabs with 4 spaces). If you are using less to look at a file via Linux, you can set the tab stop with the -x flag, e.g., less -x4 HelloWorld.java will display using 4 spaces for tabs. When filling out the grade form: -------------------------------- Comments to add to student's gradesheet (as an overall comment): Good job! Note: for each top-level part (like the KeyWord class) that a student gets completely correct, make sure to add the comment: Good job! so the student's gradefile contains some feedback for that part Style and documentation: Comments: Good commenting! Good coding style! Warning: file header comments missing some information Warning: some lines are longer than 80 characters Warning: place file header comments before import statements Warning: avoid excessive vertical whitespace Warning: some class/method header comments are missing some information