**TEALS Program** Home | Curriculum Map | Discussions | Change Log # Lesson 3.5: Platform game project ## Learning objectives Students will be able to... * Apply loops, variables, and Boolean expressions to implement a Super Mario Bros. style platform game. * Practice good debugging skills to correct issues as they arise while programming. ## Materials and preparation * Platform game project: [Platform game](project_3_platform_game_easy.md.html) ([docx](https://github.com/TEALSK12/introduction-to-computer-science/raw/master/Projects/Projects%20Word/Project%203%20Platform%20Game%20Easy.docx)) ([pdf](https://github.com/TEALSK12/introduction-to-computer-science/raw/master/Projects/Projects%20PDF/Project%203%20Platform%20Game%20Easy.pdf)). * Advanced version of the project: [Advanced platform game](project_3.md.html) ([docx](https://github.com/TEALSK12/introduction-to-computer-science/raw/master/Projects/Projects%20Word/Project%203%20Platform%20Game.docx)) ([pdf](https://github.com/TEALSK12/introduction-to-computer-science/raw/master/Projects/Projects%20PDF/Project%203%20Platform%20Game.pdf)) * [Platform game planning worksheet](https://github.com/TEALSK12/introduction-to-computer-science/raw/master/Projects/Projects%20Word/Platform_Game_Planning_Worksheet.docx) * A few suggested themes available for students who may struggle to come up with their own. * Suggestions for characters, power-ups, goals, etc. * [Snap! tips][]: 0, 4, 8, 16 ## Pacing guide | Duration | Description | | :------------ | :-------------------------------------------- | | _Day 1_ | | | 5 minutes | Welcome, attendance, bell work, announcements | | 30 minutes | Review unit topics | | 20 minutes | Introduce project | | _Days 2-9_ | | | 5 minutes | Welcome, attendance, bell work, announcements | | 10-15 minutes | Review | | 30-35 minutes | Lab time | | 5 minutes | Exit ticket | ## Instructor's notes ### Review and introduction Play a review game to remind students of the skills and concepts have been learned in this unit. * Basic loops * Nested loops * User input * Conditional blocks * Advanced (conditional) loops * Boolean logic Remind students that their solutions to previous assignments are an excellent resource when trying to accomplish similar tasks. ### Introduce project Walk students through the project specification, pointing out important details, potential pitfalls, and requirements. If students are unfamiliar with the concept of a platform game, spend a couple minutes demonstrating one for the class. Discourage students from simply recreating a game they are already familiar with (and using copyrighted assets) and encourage them to be creative and design their own characters and world instead. Static screens are somewhat easier to implement than smooth scrolling, but scrolling is doable with some scaffolding. ### Project This project is a summation of the unit. Students should be demonstrating mastery of all the skills covered. * Most students will require roughly 6-10 hours of total work time to complete the project. Assess the progress of your students regularly using such techniques as asking them to demonstrate their incomplete programs, tracking questions asked during lab time, and/or utilizing peer reviews. Adjust the amount of time allowed for the project to fit the needs of your students. It is vital that nearly all students complete the project before moving on. If most students have the ability to work on the project at home, the amount of in-class time provided can be reduced if necessary. If this approach is taken, be sure to make accommodations for students who are _not_ able to work at home, such as after school lab hours. Ensure that students are able to ask questions in class throughout the project. See the standard [lab day lesson](lab_day_lesson.md.html) for detailed plans for lab days. ## Accommodations and differentiation If any students do not have the ability to work at home, ensure enough in-class time is provided to complete the assignment, offering extensions if necessary. Advanced students can be encouraged to extend their games beyond the minimum required number of screens, add more features (power-ups, "boss" enemies, secret screens, etc.), create multiple "levels" that must be worked through, or any other extension. Struggling students can be exempted from certain requirements or given a starter project. If scaffolding this project, provide a script to perform some of the various actions required in the game (changing screens, moving the character, defeating enemies, etc.) and ask the students to fill in the triggers and conditions for using these routines. [Snap! tips]: https://github.com/TEALSK12/introduction-to-computer-science/blob/master/Snap%20Tips.docx?raw=true