🎹Lesson 8 - Final Project
How can we make make modifications to our project based on specific feature requests from a potential user?
Overview
Students will make modification to their mouse instrument projects that demonstrate their understanding of how separate parts of the code affect specific parts of the project.
Lesson Objectives
Students will be able to:
Execute changes in their project based on specified feature requests
Isolate specific parts of code and articulate what part of the program output they correspond to
Make changes to code to modify specified areas to be changed.
Suggested Duration
1 period (45 minutes) for project roll out
2-3 periods (90 - 135 minutes) for work time
NYS Standards
9-12.CT.7 Design or remix a program that utilizes a data structure to maintain changes to related pieces of data.
9-12.CT.10 Collaboratively design and develop a program or computational artifact for a specific audience and create documentation outlining implementation features to inform collaborators and users.
9-12.DL.1 Type proficiently on a keyboard.
9-12.DL.2 Communicate and work collaboratively with others using digital tools to support individual learning and contribute to the learning of others.
Vocabulary
N/A
Planning Notes
This lesson should be used to roll out the expectations for this final project. At this point, students have built a working Mouse Instrument using scales. Students will be provided with different feature requests based on hypothetical user feedback. This project will require them to look at the design of their project and consider how to modify their code and implement these feature requests. Students can be assessed by explaining the modifications that they make to demonstrate their understanding of the code and how each part affects a specific feature of the project.
There are also opportunities for multiple extensions that can be used as differentiation tasks depending on student ability levels. You can choose the requirements for the provided extensions and decide how you want to incorporate that into the final assessment grade, if at all.
Materials
Mouse Instrument Modification Planning Document
Resources
N/A
Assessments
Assessments for this project can be divided into two parts:
Students' ability to implement the requested features in the code
Students' ability to document and reflect on the process of implementing these requested features. This can include explaining why they chose a specific way to implement a feature, their ability to organize the changes in their code through version control, articulate why their approach didn't work (if applicable)
New Code in this lesson
There is no new code needed to implement the changes specified in this lesson. If students want to add their own ideas for features, they may require code not covered in this unit and should refer to the p5.js documentation.
Do Now/Warm Up
Use this time to roll out the prompt, structure and expectations for this project
Prompt
You are the designer of a mouse instrument that will be used by an experimental musician for an upcoming performance. You have presented your original sketch to the musician who really likes the idea but they would like to see some other possible options for this project. They have requested the following changes:
The scale covers two octaves instead of one
The rectangles change to a darker color when the mouse is over a rectangle, but changes to a third different color when you press the mouse.
The changes in pitch happen on the Y Axis instead of the X Axis
The pitch needs to get higher as the mouse moves up on the canvas
You need to implement these changes into the original sketch for this instrument. This will require you to make modifications to different parts of your sketch. For each change, you are going to need to identify which parts of your code are connected to the feature you are trying to implement, how you will modify them to meet the new specifications of the musician and then execute those changes in your code (Remember the 3 roles in the UX process: Project Manager, Designer, Engineer). Students should take time to first discuss and plan these changes, sketch out ideas in pseudocode and then try to figure out a workable solution before they actually write the code.
One approach could be for students to add comments into the original version of this instrument to indicate where the changes should be implemented in the code
Workflow
This project could be done individually, however it would be more beneficial to have students work in small groups to further simulate the designing process. This can have students consider the division of labor and what approach their group should use to most effectively approach adding these feature requests.
Possible approaches:
Create “ticket” items: have students in a group each take an item and take time to sketch out, then reconvene and discuss their solutions.
Have everyone focus on one feature together and each try to come up with a solution individually, then reconvene and figure out which one they think is the best or see if multiple people came up with the same solution.
The group’s approach and decisions on how to divide the labor can also be included into the reflection aspect of the assessment. Students can be asked to consider how effective their workflow choice was, what worked well, what didn’t work well, what could have been improved upon etc. The insight they gain from this design experience can prove to be very useful when working on future projects.
Version Control
Because there are several features that need to be implemented, an emphasis should be put on version control. When students are trying to code a solution for one of the features, they should first make a copy of original sketch and give it a name which reflects the feature and where they are in the design process (example - Mouse Instrument: Y Axis Pitch - Attempt 1)
This way they can document their progress as well as avoid getting too deep into a solution that doesn’t work and thus ruining the original code. Once they have a working solution, they can keep separate sketches used for incorporating these changes into a final product. But they should also continue to make copies of these sketches. Even if they have two separate features that work individually in separate sketches, they might not behave the same way when they are put together in a single sketch.
How to create a Collection in p5 Web Editor
Students can use the Collection feature in the p5.js web editor to keep their sketches for this project in one place.
Start by selecting file -> open
Select Collections and click on "Create Collection Button"
Give a name to your collection
Open a sketch you want to add to a collection. Go to file -> add to collection
Click on '+' next to name of Collection to add sketch to collection
Documentation of Progress
Students can also be asked to keep a journal or log of what they have tried to implement, solutions they came up with, things they tried, things that failed etc. The grading for this project can be just as much about the design process as the actual execution of the final code. Part of the grade can also be the documentation and organization of the process and how well the teacher can trace their designing journey.
Being able to explain why one solution didn’t work can be an equally valuable, if not more so, learning experience. Consider that a solution may not work for different reasons: It was too difficult to implement the code into the sketch, there is a bug in the code, the code worked but not in the way a student thought it should (a bug in our understanding), everything works but it creates other problems in the overall design. Being able to articulate what went wrong can still demonstrate a student's understanding.
Share Outs
Consider taking time at different points in this project to have students share how their group is coming along. Groups can choose to share successes or struggles. This can be related to actual coding solutions, design process, workflow approaches etc. For example, if a group seems to be making a lot of progress, they could share how they are planning and dividing up the work. If a group is struggling to implement a certain feature, they could ask questions or show where they are having problems so the class can assist them.
With a focus on assessing the process in addition to the code, there can be less concern about students just getting the answer to an issue during these share out sessions.
Wrap Up
Use this time for a final share out for students to show off their projects, highlighting any additional features they may have incorporated, and discussing how their experience went. Consider having each group sharing one victory and one struggle. This can be helpful for students to both celebrate something that went well and to hear that they were not the only ones to struggle at different points. Have them reflect on what they can take from their victory to ensure further victories and what they can learn to do differently to avoid similar struggles in the future.
Extensions
You can also consider adding the following additional features:
Choose a different type of scale that is not pentatonic
Include Musical Note Names (A, Bb, C# etc) inside of each rectangle so you know which note is being played
Have different rectangles change to different colors when the mouse presses on them. Consider the scale you are using. If there is a specific country this scale is related to, you could consider using colors from the flag or colors for the country's uniform at international sporting events.
Have the outline of the rectangle get thicker when it is pressed.
Students can also be encouraged to try and come up with their own ideas for modifications they can add to make this project more interesting and/or dynamic. Be open and accepting to student ideas. Remember that part of this project should be about the process. If students are motivated to try and add a feature to their project, give them the space to do this, but remind them to document their journey, so regardless of whether they are successful or not, they can still get value from the experience.
Last updated