From d1448c9754cfe8102012579e50037faf38fc6755 Mon Sep 17 00:00:00 2001 From: Janet Davis Date: Wed, 17 Apr 2019 13:40:20 -0700 Subject: [PATCH 1/5] Added rubric and assessed functional requirements --- project-5/rubric.md | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 project-5/rubric.md diff --git a/project-5/rubric.md b/project-5/rubric.md new file mode 100644 index 0000000..f72abc2 --- /dev/null +++ b/project-5/rubric.md @@ -0,0 +1,61 @@ +# GRADE: 64/64 + +## Functional and implementation requirements: 34/36 points total + +Earned|Possible|Requirement | Comments +------|--------|------------|---------- +1|1| Add two new menu items to the Edit menu called Group and Ungroup. +4|4| When the Group menu item is chosen, all selected note bars are grouped into one gesture. A gesture behaves as if it is just one note bar with a complex sound to it. If nothing is selected when the Group menu item is chosen, nothing happens. +2|2| Selecting any note in a gesture causes the same thing to happen to all the others in the gesture. +2|2| Unselecting any note in a gesture with control-click causes the same thing to happen to all the others in the gesture. +2|2| Drag-selecting over a gesture consistently selects or unselects all the notes in the gesture. +2|4| Dragging note bars in a gesture moves or stretches all notes in the gesture. | _Moves, does not stretch_ +3|3| Gestures are indicated visually by a thin black dotted line around the group of note bars. +1|1| A selected gesture is indicated using a style similar to that of a selected note bar. +4|4| Gestures can include note bars or other gestures (that is, gestures can be nested). +4|4| When the Ungroup menu item is chosen, the selected gesture is ungrouped. Note that nested inner gestures are not ungrouped; you have to ungroup the nested gestures separately after ungrouping the outer gesture. If no groups are selected when Ungroup is chosen, nothing happens. +1|1| After selecting the Group menu item, the new gesture becomes the only selected item. +2|2| After choosing Ungroup, all the inner notebars and gestures of the ungrouped gesture are selected. _All the selected gestures are ungrouped. Nice!_ + +### "Stretch goal" + +Earned|Possible|Requirement | Comments +------|--------|------------|---------- +0|0| When the right edge of a gesture is grabbed and stretched left or right, the duration and offset of everything in the gesture should stretch proportionally. + +### No regressions - 3.5/4 points + +Earned|Possible|Requirement | Comments +------|--------|------------|---------- +3.5|4| All prior requirements are met, unless they have been superseded by new requirements. _Please fix the issue about platform-independent keyboard shortcuts. It should not be difficult._ + +### Release tag - 1.5/2 points + +Earned|Possible|Requirement | Comments +------|--------|------------|---------- +1.5|2| The release is tagged as project-5-release. _It was tagged as ```project-5```, which is not exactly what I asked for_ + +## Reflection - 12/12 points + +For project 5 and beyond, I will expect your discussion of design and elegance to refer explicitly to design principles we have discussed in class. + +Earned|Possible|Requirement | Comments +------|--------|------------|---------- +3|3| UML +2|2| Design overview +2|2| What is elegant? +2|2| What is not elegant? +1|1| Velocity +1|1| Collaboration statement +1|1| Team retrospective + +## Elegance - 16/16 points + +I looked at your UML diagram to assess the elegance of your class design. You will get a grade for class design starting with Project 6. +I spot-checked a new class () and a modified class () to assess method-level design and self-explanatory code. + +Earned|Possible|Requirement | Comments +------|--------|------------|---------- +0|0| Class design +8|8| Method design +8|8| Self-explanatory code From 16cfe483033f57075ff21dc87ae042a8edecff59 Mon Sep 17 00:00:00 2001 From: Janet Davis Date: Wed, 17 Apr 2019 13:44:12 -0700 Subject: [PATCH 2/5] Bolded prompts for readability --- project-5/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/project-5/README.md b/project-5/README.md index ad4b31a..649fa94 100644 --- a/project-5/README.md +++ b/project-5/README.md @@ -1,19 +1,19 @@ -Give a concise overview of your design for the new features. How did you divide the code into classes and methods? Make sure you address whether and how you refactored the code implementing earlier features. +**Give a concise overview of your design for the new features. How did you divide the code into classes and methods? Make sure you address whether and how you refactored the code implementing earlier features.** We created a new class Gesture. We decided to make a Playable interface that Gesture and Note implement. Each Gesture has a set of Playables that it contains. We also added the group and ungroup methods within the TuneComposer class. We built on the project 5 starter solution and did not refactor this code in a significant way. -Explain what, if anything, is particularly elegant about your solution and why it is elegant. For full credit, apply concepts, guidelines, and/or principles you learned in class. +**Explain what, if anything, is particularly elegant about your solution and why it is elegant. For full credit, apply concepts, guidelines, and/or principles you learned in class.** Having an interface is elegant because it deals with the similarities between notes and gestures. It made scheduling notes to be played and nesting gestures fairly simple to implement. Having a Gesture that is a set of playables allows a Gesture to contain notes and other Gestures. Each class inherits the abstract methods in the interface. -Explain what, if anything, in your solution is inelegant and why you didn't make it elegant (for example, maybe you didn't have time or the knowledge to fix it). For full credit, apply concepts, guidelines, and/or principles you learned in class. +**Explain what, if anything, in your solution is inelegant and why you didn't make it elegant (for example, maybe you didn't have time or the knowledge to fix it). For full credit, apply concepts, guidelines, and/or principles you learned in class.** The Ungroup method seems inelegant because it contains three for loops, one of which is nested inside another. It also requires the creation of two new arraylists. It's less elegant because we wrote it last so we couldn't think of another way to get it to work at all within the infrastructure we had made for the gestures and also we were running out of time at that point. Also, the way makeGroup ended up being implemented is inelegant and is the result of a patch to a documented issue. Writing a more elegant version would have required rewriting and redesigning a lot of code and there wasn't time by the time the issue was discovered. -Include an estimate of your velocity. How many story points did you estimate you would complete during this assignment? How many did you actually complete, how many person-hours did the team spend, and what is the ratio of points/person-hour? I want you to monitor your velocity to help you plan better over the final iterations. There are no "good" or "bad" numbers for velocity. +**Include an estimate of your velocity. How many story points did you estimate you would complete during this assignment? How many did you actually complete, how many person-hours did the team spend, and what is the ratio of points/person-hour? I want you to monitor your velocity to help you plan better over the final iterations. There are no "good" or "bad" numbers for velocity.** We worked about 23 person hours on this project. We thought there would be about 5 story points and that seems fairly accurate having completed it. The ratio of points/person hour is 1/4 to 1/5. -How did you colloborate? What role[s] did each team member play? What went well that your team will keep doing during the next project assignment? What will you improve? How? +**How did you colloborate? What role[s] did each team member play? What went well that your team will keep doing during the next project assignment? What will you improve? How?** We primarily did pair programmming and occasionally worked in groups of three. To a certain extent everyone played the roles of developer, solutions architecht, and quality assurance. Occasionally someone would perform some of the functions of the development lead. We liked using the GitHub issues feature to systematically handle one implementation challenge at a time. This also allowed us to update members of the group on what parts still needed to be implemented. Hopefully we will all be able to meet together at once more in the future. From b6fe71034ceb0abe13399a0f397def092797a2d4 Mon Sep 17 00:00:00 2001 From: Janet Davis Date: Wed, 17 Apr 2019 13:47:20 -0700 Subject: [PATCH 3/5] Commented --- project-5/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/project-5/README.md b/project-5/README.md index 649fa94..9f716e8 100644 --- a/project-5/README.md +++ b/project-5/README.md @@ -8,11 +8,13 @@ Having an interface is elegant because it deals with the similarities between no **Explain what, if anything, in your solution is inelegant and why you didn't make it elegant (for example, maybe you didn't have time or the knowledge to fix it). For full credit, apply concepts, guidelines, and/or principles you learned in class.** -The Ungroup method seems inelegant because it contains three for loops, one of which is nested inside another. It also requires the creation of two new arraylists. It's less elegant because we wrote it last so we couldn't think of another way to get it to work at all within the infrastructure we had made for the gestures and also we were running out of time at that point. Also, the way makeGroup ended up being implemented is inelegant and is the result of a patch to a documented issue. Writing a more elegant version would have required rewriting and redesigning a lot of code and there wasn't time by the time the issue was discovered. +The Ungroup method seems inelegant because it contains three for loops, one of which is nested inside another. _So are you concerned about the cyclomatic complexity?_ It also requires the creation of two new arraylists. It's less elegant because we wrote it last so we couldn't think of another way to get it to work at all within the infrastructure we had made for the gestures and also we were running out of time at that point. Also, the way makeGroup ended up being implemented is inelegant and is the result of a patch to a documented issue. Writing a more elegant version would have required rewriting and redesigning a lot of code and there wasn't time by the time the issue was discovered. **Include an estimate of your velocity. How many story points did you estimate you would complete during this assignment? How many did you actually complete, how many person-hours did the team spend, and what is the ratio of points/person-hour? I want you to monitor your velocity to help you plan better over the final iterations. There are no "good" or "bad" numbers for velocity.** -We worked about 23 person hours on this project. We thought there would be about 5 story points and that seems fairly accurate having completed it. The ratio of points/person hour is 1/4 to 1/5. +We worked about 23 person hours on this project. We thought there would be about 5 story points and that seems fairly accurate having completed it. The ratio of points/person hour is 1/4 to 1/5. + +_This is really helpful! I'll be very curious to see if that estimate changes for Project 6._ **How did you colloborate? What role[s] did each team member play? What went well that your team will keep doing during the next project assignment? What will you improve? How?** From 42a350df3b0716702c95f90c0e61a8f9b2b03838 Mon Sep 17 00:00:00 2001 From: Janet Davis Date: Wed, 17 Apr 2019 13:59:12 -0700 Subject: [PATCH 4/5] Completed grading rubric --- project-5/rubric.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/project-5/rubric.md b/project-5/rubric.md index f72abc2..5817c15 100644 --- a/project-5/rubric.md +++ b/project-5/rubric.md @@ -1,4 +1,4 @@ -# GRADE: 64/64 +# GRADE: 59.5/64 ## Functional and implementation requirements: 34/36 points total @@ -29,33 +29,33 @@ Earned|Possible|Requirement | Comments ------|--------|------------|---------- 3.5|4| All prior requirements are met, unless they have been superseded by new requirements. _Please fix the issue about platform-independent keyboard shortcuts. It should not be difficult._ -### Release tag - 1.5/2 points +### Release tag - 1/2 points Earned|Possible|Requirement | Comments ------|--------|------------|---------- -1.5|2| The release is tagged as project-5-release. _It was tagged as ```project-5```, which is not exactly what I asked for_ +1|2| The release is tagged as project-5-release. _It was tagged as ```project-5``` and ```project_5_, neither of which is exactly what I asked for. I had a hard time finding your UML._ -## Reflection - 12/12 points +## Reflection - 11/12 points For project 5 and beyond, I will expect your discussion of design and elegance to refer explicitly to design principles we have discussed in class. Earned|Possible|Requirement | Comments ------|--------|------------|---------- -3|3| UML +3|3| UML | _Classname should be Note?| 2|2| Design overview 2|2| What is elegant? -2|2| What is not elegant? +1|2| What is not elegant? | _I'd like to see more application of design principles here._ 1|1| Velocity -1|1| Collaboration statement +1|1| Collaboration statement | _I like that you referred to some of the roles we read about._ 1|1| Team retrospective -## Elegance - 16/16 points +## Elegance - 14/16 points I looked at your UML diagram to assess the elegance of your class design. You will get a grade for class design starting with Project 6. -I spot-checked a new class () and a modified class () to assess method-level design and self-explanatory code. +I spot-checked a new class (Gesture) and a modified class (TuneComposer) to assess method-level design and self-explanatory code. Earned|Possible|Requirement | Comments ------|--------|------------|---------- 0|0| Class design 8|8| Method design -8|8| Self-explanatory code +6|8| Self-explanatory code | _See my issues on GitHub._ From 6aa7855465f189132c1b38d82bfe9516b551a7ef Mon Sep 17 00:00:00 2001 From: Janet Davis Date: Wed, 17 Apr 2019 15:33:26 -0700 Subject: [PATCH 5/5] Fixed rubric bug - points did not add up to 64 --- project-5/rubric.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/project-5/rubric.md b/project-5/rubric.md index 5817c15..392b24f 100644 --- a/project-5/rubric.md +++ b/project-5/rubric.md @@ -23,11 +23,11 @@ Earned|Possible|Requirement | Comments ------|--------|------------|---------- 0|0| When the right edge of a gesture is grabbed and stretched left or right, the duration and offset of everything in the gesture should stretch proportionally. -### No regressions - 3.5/4 points +### No regressions - 1.5/2 points Earned|Possible|Requirement | Comments ------|--------|------------|---------- -3.5|4| All prior requirements are met, unless they have been superseded by new requirements. _Please fix the issue about platform-independent keyboard shortcuts. It should not be difficult._ +1.5|2| All prior requirements are met, unless they have been superseded by new requirements. _Please fix the issue about platform-independent keyboard shortcuts. It should not be difficult._ ### Release tag - 1/2 points @@ -49,7 +49,7 @@ Earned|Possible|Requirement | Comments 1|1| Collaboration statement | _I like that you referred to some of the roles we read about._ 1|1| Team retrospective -## Elegance - 14/16 points +## Elegance - 10/12 points I looked at your UML diagram to assess the elegance of your class design. You will get a grade for class design starting with Project 6. I spot-checked a new class (Gesture) and a modified class (TuneComposer) to assess method-level design and self-explanatory code. @@ -58,4 +58,4 @@ Earned|Possible|Requirement | Comments ------|--------|------------|---------- 0|0| Class design 8|8| Method design -6|8| Self-explanatory code | _See my issues on GitHub._ +2|4| Self-explanatory code | _See my issues on GitHub._