๐ŸŽน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:

  1. Students' ability to implement the requested features in the code

  2. 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:

  1. The scale covers two octaves instead of one

  2. 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.

  3. The changes in pitch happen on the Y Axis instead of the X Axis

  4. 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

Sample sketch with comments

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.

  1. Start by selecting file -> open

  2. Select Collections and click on "Create Collection Button"

  1. Give a name to your collection

  1. Open a sketch you want to add to a collection. Go to file -> add to collection

  1. 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