Rubric
Scored by the auto-test
The auto-test scores the items in this part. Each item earns its points in proportion to the share of its tests that pass. A method is correct when it does what its task page and the comment above it say; in a Measured class, that includes counting as Task 1 defines.
MeasuredArrayList (9 points)
addis correct. [1 point]getis correct. [1 point]setis correct. [1 point]indexOfis correct. [1 point]containsis correct. [1 point]removeis correct. [1 point]removeAtis correct. [1 point]resetis correct. [1 point]accessesis correct. [0.5 points]mutationsis correct. [0.5 points]
MeasuredArrayListTest (9 points)
- The tests pass on a correct
MeasuredArrayList. [1 point] - The tests catch the bugs in the buggy versions of
MeasuredArrayListthe auto-test runs them against. Catching 13 of them earns all the points; fewer earns a share. [8 points]
SelectionSort (3 points)
indexOfMaxis correct. [1 point]sortis correct. [2 points]
BubbleSort (3 points)
sortis correct. [3 points]
InsertionSort (3 points)
sortis correct. [3 points]
MergeSort (5 points)
mergeis correct. [2 points]- The recursive
sort(list, start, end)is correct. [2 points] sort(list)is correct. [1 point]
MeasuredArraySet (2.5 points)
indexOfis correct. [0.25 points]addis correct. [0.5 points]containsis correct. [0.5 points]removeis correct. [0.5 points]resetis correct. [0.25 points]accessesis correct. [0.25 points]mutationsis correct. [0.25 points]
MeasuredSortedArraySet (5 points)
insertionPointis correct. [1.5 points]isAtis correct. [0.5 points]indexOfis correct. [0.5 points]containsis correct. [0.5 points]addis correct. [1 point]removeis correct. [1 point]
MeasuredTransposeArraySet (3 points)
indexOfis correct. [0.5 points]transposeis correct. [1 point]containsis correct. [0.5 points]addis correct. [0.5 points]removeis correct. [0.5 points]
MeasuredMoveToFrontArraySet (15 points)
indexOfis correct. [1 point]addis correct. [1 point]closeGapFromFrontis correct. [2 points]closeGapFromBackis correct. [2 points]moveToFrontis correct. [4 points]removeAtis correct. [3 points]containsis correct. [1 point]removeis correct. [1 point]
Graded by the teaching staff
The teaching staff grade the items in this part. An item may earn part of its points when it is partly met.
MeasuredArrayListTest (2 points)
MeasuredArrayListTestcontains focused, appropriately named unit tests that each check one behavior and are ordered from the simplest to the most involved, as the testing chapter teaches. [2 points]
Part I: Counting accesses and mutations (8 points)
- The analysis of
SelectionSortis correct. [2 points] - The analysis of
BubbleSortis correct. [2 points] - The analysis of
InsertionSortis correct. [2 points] - The predictions are checked against the driver. [2 points]
Part II: Profiling the sorts (10 points)
- Finds the mistake. [4 points]
- Describes how the mistake was found. [3 points]
- Draws conclusions about the sorts, backed by measurements. [3 points]
Part III: Searching the sets (7 points)
- Explains the results of the uniform pattern. [2 points]
- Explains the results of the skewed pattern. [2 points]
- Shows, with a sequence of calls, how
removeworks against transpose. [2 points] - Explains why
MeasuredMoveToFrontArraySetkeeps the order when it removes. [1 point]
Part IV: Your search experiment (8 points)
- The pattern in
experimentQueriesdoes what the question asks. [4 points] - Explains why the pattern works. [2 points]
- Explains the difference between the first and the fastest run. [2 points]
Style (2.5 points)
- The code uses only the language features and data structures the course teaches: no Java Collections, lambdas, or streams. [1 point]
- The code exhibits good programming style: it is well organized and easy to read, uses descriptive names, keeps the given fields and method signatures, and adds no public methods. [1.5 points]
The auto-test scores 57.5 points and the teaching staff grade 37.5 points, for a total of 95 points.