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