Students will be able to...
- Pass information from the master to individual clones.
- Delete clones when they are no longer needed.
- Do now 5.3
- 5.3 slide deck
- Lab 5.3 - Fewer balls (docx) (pdf)
- Helping trios activity
- Test out the lab on student machines before class to ensure the machines can handle the number of clones.
- Unit 5 tips
Duration | Description |
---|---|
5 minutes | Welcome, attendance, bell work, announcements |
10 minutes | Introductory discussion |
30 minutes | Fewer Balls lab |
15 minutes | Debrief and wrap-up |
Review the lab from yesterday again, focusing on the identical nature of the clones.
Ask students to describe how (or if) the prototype communicates to the clones.
Ask students how they might remove balls if they decide there too many.
- Students should ultimately realize that there is no way to destroy only some clones.
Introduce the distinction between "global variables" and "sprite variables".
- Global variables ("for all sprites") are visible to and usable by all sprites in the program.
- Sprite variables ("for this sprite only") are only visible to and usable by a single sprite.
- Emphasize that, when cloning is used, each clone gets its own copy of any sprite variables inherited from the prototype.
Ask students to brainstorm situations in which each type of variable is appropriate.
- Global variables are best for application-level data, such as sprite counts, game level number, score, etc.
- Sprite variables are best for properties that may be specific to each sprite, such as speed, id #, etc.
Students should complete the fewer balls lab.
- Students will likely have difficulty isolating the uses for each variable. Remind them that each variable serves a specific purpose, and that they should focus on keeping straight what variable does what.
- Currently, the lab is written to use global variable "id" to talk to one sprite at a time. If not used carefully, this design pattern has the potential for race conditions. If you believe students are capable, you can have a discussion about race conditions and concurrency and the problems that can arise.
Have students pair up and review each other's script. Encourage students to discuss differences in their approaches and try to understand why each wrote the script as they did.
If students have struggled with the lab, consider implementing Helping trios activity.
Ask a few students to share difficulties they or their partner had and/or different approaches they took the problems.
For faster students, explaining and demonstrating race conditions would be valuable. Instructors could also give out project with a "simple race condition" (if such a thing exists) and ask the students to fix it.
Advanced students can also try to implement features giving them additional control over clones, such as changing a specific clone's speed or direction.
Struggling students can ignore the requirement to be able to create new sprites after some have been deleted and just focus on deleting clones one at a time.