Programming Assignment 2 Grading:
--------------------------------------------------------------------------------
First, create a grading directory (e.g., in your private CS directory) and
copy the testAll script to your grading directory.
You may need to run the command: chmod a+x testAll
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 2 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 the testAll script giving it the name of
the student's subdirectory
testAll 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 to the
console and saving results from running tests to a file
- the LinkedLoopTester is used to test the student's LinkedLoop (and
EmptyLoopException, and LinkedLoopIterator) with our DblListnode
The test files it uses (with corresponding output) in the LoopTestFiles/
folder:
loopOne.txt
loopSmall.txt
loopLarge.txt
- the student's program is tested using the files below (if the student's
LinkedLoop has errors in it, you may need to edit their MessageLoopEditor
so that it uses the ArrayListLoop instead of the students LinkedLoop)
The test files it uses (with corresponding output) in the
MessageLoopEditorTestFiles/ folder:
badInput.txt
emptyTest.txt
cutCopyPaste.txt
jumpPrevNext.txt
addInsert.txt
findTest.txt
replaceTest.txt
6) Look at the file 'student.all.txt' to see where the student's output
differed from ours. If the student got all the expected output, this
file will look like the file
/p/course/cs367-hasti/public/html/assignments/p2/grading/sample.all.txt
7) Make sure to look at the student's code as well (for style and
documentation, among other reasons). Make sure to verify that the student
implemented the LinkedLoop class using a circular doubly-linked list.
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.
Additional scripts:
testLoop
- give the name of the student directory as an argument
(e.g., testLoop Student_Annie)
- assumes that testAll has already been run (so the JAVA subdirectory contains
all the source code)
- runs just the LoopTester stuff
- creates file named student.loop.txt
testMsg
- give the name of the student directory as an argument
(e.g., testMsg Student_Annie)
- assumes that testAll has already been run (so the JAVA subdirectory contains
all the source code)
- runs just the MessageLoopTester stuff
- creates file name student.msg.txt
Note: if testAll doesn't terminate:
- kill it (ctrl-C)
- run testLoop
- run testMsg (and then testMsgForce if necessary)
If you have to terminate testLoop or testMsg, you can run each individual test
from the directory you are grading in:
- If the student's code already compiled, it should be in the directory so you
can just run it.
- Copy the LoopTestFiles directory and the MessageLoopEditorTestFiles directory
to your grading directory.
- To test MessageLoopEditor, you can do, for example,
java MessageLoopEditor MessageLoopEditorTestFiles/addBeforeAfter.txt > output.txt
You can then compare the student's results with the expected results:
diff -b output.txt MessagLoopEditorTestFiles/addBeforeAfter.output.f.txt
Comments to add to student's gradesheet (as an overall comment):
Good job!
Note: for each top-level part (like the EmptyLoopException 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