Rubric
The teaching assistants will use the following rubric to evaluate your submission.
Please note, we reserve the right to change this rubric without advance notice, even after the submission deadline. However, the chances of doing so are slim, and at any rate, should not be a significant change.
General
-
TAs: A submission that does not contain files about this exam (e.g., the student submitted solution to a different homework), or one that only includes the starter code, do not meet any of the specifications of this rubric (under any of the "required," "satisfactory," or "complete" categories). In such a case, please check this item to flag the submission and immediately inform the head-TA.
Note: We may consider evaluating an earlier submission if it exists. -
TAs: A submission that fails to compile or run (or that it runs but times out or crashes) on Gradescope inherently fails to meet any of the specifications of this rubric for implementation (under any of the "required," "satisfactory," or "complete" categories). In such a case, please check this item to flag the submission and immediately inform the head-TA. Please evaluate the submission for testing and on the merit of their discussion.
-
TAs: A submission where the starter code is modified in ways that were not allowed will not meet any of the specifications of this rubric for related implementation (under any of the "required," "satisfactory," or "complete" categories) irrespective of passing any of the auto-tests. Please evaluate the submission for testing and discussion sections. Moreover, check this item to flag the submission.
Required
-
Spec: The implementation of the constructor of
RasterUnionFind
is almost but not quite correct.
TAs: The specification is met if all but a few of the related auto-tests pass. Please skim over the code. Please don't consider the efficiency or style of the implementation here. -
Spec: The implementation of the
find
operation ofRasterUnionFind
is almost but not quite correct.
TAs: The specification is met if all but a few of the related auto-tests pass. Please skim over the code. Accept a non-recursive but correct implementation. Please don't consider the efficiency or style of the implementation here. -
Spec: The implementation of the
union
operation ofRasterUnionFind
is almost but not quite correct.
TAs: The specification is met if all but a few of the related auto-tests pass. Please skim over the code. Please don't consider the efficiency or style of the implementation here. -
Spec: In
RasterUnionFind
, they correctly implemented the requested helper methodsgetX
andgetY
.
TAs: Please check the code. Please don't consider the efficiency or style of the implementation here. -
Spec: The implementation of
RasterUnionFind
exhibits good practices for writing readable code (such as consistent indentation, etc.) and good programming style (e.g., helper methods are made private, etc.).
TAs: This specification is not met if there are any checkstyle errors (including errors related toMethodLength
andCyclomaticComplexity
). In addition to checkstyle mistakes, you also need to check the code manually to ensure, e.g., variable and method names are clear, concise, and descriptive; duplicate code is refactored into a helper method and reused; etc. -
Spec: In
ImageRegions
, they fixed the checkstyle issue of Cyclomatic complexity forlabelRegions
method .
TAs: The specification is met if there is noCyclomaticComplexity
checkstyle error. -
Spec: In
ImageRegions
, they fixed the checkstyle issue of Method length forlabelRegions
method.
TAs: The specification is met if there is noMethodLength
checkstyle error. -
Spec: In
UnionFindTest.java
, they added a unit test toUnionFindTest
that is sufficiently different from the provided one. -
Spec: In
UnionFindTest.java
, they added another unit test toUnionFindTest
that is sufficiently different from the provided one and their other unit test.
Satisfactory
-
Spec: The implementation of the constructor of
RasterUnionFind
is entirely correct.
TAs: The specification is most likely met if the related auto-tests pass. Please check the code carefully. Please don't consider the style or efficiency here. -
Spec: The implementation of the
find
operationRasterUnionFind
is entirely correct.
TAs: The specification is most likely met if the related auto-tests pass. Please check the code carefully. Do not accept a non-recursive implementation. Please don't consider the style or efficiency here. -
Spec: The implementation of the
union
operationRasterUnionFind
is entirely correct.
TAs: The specification is most likely met if the related auto-tests pass. Please check the code carefully. Please don't consider the style or efficiency here. -
Spec: In
RasterUnionFind
, they correctly update thecount
.\ TAs: The specification is most likely met if the related auto-tests pass. Please check the code carefully. Please don't consider the style or efficiency here. -
Spec: The
labelRegions
method inImageRegions
is correct (no error after refactoring) and does not perform any unnecessary work.
TAs: There should not be any related checkstyle error. Please check the code carefully to ensure no unnecessary work is performed. -
Spec: In the
README.md
file, the explanation of "how theImageSegmentation
program works" is (mostly) correct and coherent. -
Spec: In the
README.md
file, the asymptotic analysis ofkruskal
method fromImageSegmentation
is almost but not quite correct.
TAs: At most two mistakes are acceptable! -
Spec: In the
README.md
file, they make a coherent argument in their answer to the question about "Kruskal vs. Prim," even if the answer is not quite correct. -
Spec: In the
README.md
file, they make a coherent argument in their answer to the question about "apparent path compression inRasterUnionFind
implementation," even if the answer is not quite correct.
TAs: Please check theREADME.md
file.
Complete
-
Spec: The implementation of
RasterUnionFind
does not involve any unnecessary work.
TAs: Please carefully inspect the source code. -
Spec: In the
README.md
file, the asymptotic analysis ofkruskal
method inImageSegmentation
is entirely correct. -
Spec: In the
README.md
file, the answer to the question about "adding duplicate edges to the priority queue" is correct, and the argument is sound. -
Spec: In the
README.md
file, the answer to the question about "lack of cycle detection inkruskal
method" is correct, and the argument is sound. -
Spec: In the
README.md
file, the answer to the question about "Kruskal vs. Prim" is correct, and the argument is sound. -
Spec: In the
README.md
file, they make a correct and sound argument in their answer to the question about "apparent path compression inRasterUnionFind
implementation."