Students continue working on their apps. Halfway through class the focus of the lesson shifts to getting feedback. Students watch other groups test their apps and collect feedback that will be used to make updates.
Students will be able to:
- Test an app's functionality by attempting to use features and behavior described in a program specification
- Provide effective feedback on the functionality or usability of an app
- Iteratively improve an app based on feedback
This lesson reinforces the importance of feedback in the process of developing software. Feedback and testing help make sure that an app actually works for lots of people and in the context in which it will be used. This process also reinforces the importance of making iterative improvements in making software.
Prompt: Think of times when you've received helpful feedback on school work, a hobby, or a sport.
- What makes good feedback?
- What makes bad feedback?
Discussion Goal: This is an optional prompt if your class situation requires it. If you believe your students need more time to work on their apps then move right into work time. This prompt, however is designed to get students thinking early about the differences between useful and unhelpful feedback. For example, students may note that...
- Good feedback:
- Specific information beyond "it's great".
- Explains why something needs work
- Bad feedback:
- Is overly negative without constructive feedback
- Does not go into enough detail
- Today we're going to keep working on our apps, but we're also going to be getting feedback from our classmates. Let's get to it!
Group: Place students back in pairs with their project partners.
- For the next twenty five minutes, you and your partner will use Pair Programming to continue working on your app. After this is done, you will get feedback from another group.
Circulate: Direct students to continue working on their apps.
Review Pair Programming: You may want to review the Pair Programming roles from the previous lesson before students begin working.
Encourage Debugging Practices: Continue to encourage students to use the debugging practices they learned in previous lessons and normalize and celebrate debugging as a part of programming.
Testing and Feedback
Distribute: Direct students back to the App Development Planning Guide - Activity Guide.
Do This: Groups swap apps and gather feedback. It is ok to move ahead to this section even if students are not done with their apps yet.
Here's what you should observe:
- Group A lets Group B test their app.
- Group A watches Group B use the app, and writes down improvements that come to mind.
- Group A interviews Group B asking for specific improvements Group A can make. This may be different than what Group A came up with during the observation. These improvements are written down in the Activity Guide.
- Group A and B swap and now Group A tests Group B's app while Group B watches.
- After this, mix up the group pairings and repeat the steps above.
- Now return to your stations and pick at least one improvement to make to your app based on feedback. Write this down in the Planning Guide in Step 7.
Prompt: Why is it important to get feedback from others while building your app? What is the value of getting this feedback even if you aren't finished with your app?
Discussion Goal: Use this prompt as time allows. The goal is to reinforce the importance of feedback in the development of good software. Possible answers include:
- Another person may find a bug that you have been overlooking
- Something that seems obvious to you is not obvious to the user
- Even if the app isn't finished, feedback can help guide the next steps
- Feedback and testing are important parts of making good software. They ensure that our apps actually work the way we designed them, and they help us make gradual improvements. Tomorrow you'll have a chance to make some final touches on your app before we submit them!
- CSTA K-12 Computer Science Standards (2017): 3A-AP-16, 3A-AP-19, 3A-AP-21, 3A-AP-22, 3A-AP-23
- CSP2021: CRD-1.A.5
- CSP2021: CRD-1.B.1
- CSP2021: CRD-2.E.3
- CSP2021: CRD-2.J.1
- CSP2021: CRD-2.J.3