-
7th Grade
- Project
- 4 weeks
Python Patrol: Code for Community Safety!
2-AP-10
2-AP-11
Purpose
Students will collaboratively design and develop a Python-based software game that simulates real-world scenarios to connect community members with local resources and support networks. Through this project, students will apply object-oriented design principles and use flowcharts or pseudocode to break down complex problems into algorithms. They will create and manipulate clearly named variables representing different data types to enhance the functionality of their game. This hands-on project encourages students to think critically and work together to address neighborhood safety and communication challenges, fostering a deeper understanding of programming concepts and their practical applications.
Learning goals
Students will develop skills in object-oriented programming by designing and implementing a Python program that addresses community safety and communication. They will use flowcharts and pseudocode to break down complex problems into algorithms, creating clearly named variables to manage and manipulate data types effectively. By the end of the project, students will have a functional program that demonstrates their ability to connect community members with local resources, meeting the specified standards through hands-on, collaborative coding experiences.
Standards
- 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
- 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
Products
Students will collaboratively design and develop a Python-based software application that serves as a community resource hub, focusing on enhancing neighborhood safety and communication. Throughout the project, students will create flowcharts and pseudocode to plan their algorithms, ensuring they meet the standards for addressing complex problems. They will implement object-oriented design principles to structure their program, using clearly named variables to represent different data types and perform necessary operations. The final product will be a functional program that students will test and refine, demonstrating their understanding through a live demonstration and a reflective presentation of their development process.
Launch
Begin the project by presenting a real-world scenario where local community members face challenges in accessing resources and support networks. Facilitate a brainstorming session where students identify potential solutions and discuss how technology can bridge these gaps. Introduce the concept of object-oriented design and guide students in creating flowcharts or pseudocode to map out their initial ideas. Encourage students to think about how variables can represent different types of data, such as contact information or resource availability, and how they might perform operations on these values to enhance communication and safety.
Exhibition
Students will showcase their Python programs in a "Community Tech Fair" where they present their projects to peers, teachers, and local community members. Each student will demonstrate how their program addresses the challenge question by using flowcharts and pseudocode to explain their algorithms. They will also highlight their use of object-oriented design and variable operations. Attendees can interact with the programs and provide feedback, fostering a sense of accomplishment and real-world application.
Week 1 | Day 1 | Day 2 | Day 3 | Day 4 | Day 5 |
---|---|---|---|---|---|
Activities |
Discover Stage: Real-World Scenario Introduction - Present a scenario where community members face challenges accessing resources, followed by a class discussion to explore initial thoughts and emotions (20 min)
Discover Stage: Brainstorm Potential Solutions - Facilitate a brainstorming session where students identify potential solutions that technology could provide to bridge gaps in resource access (25 min)
|
Discover Stage: Object-Oriented Design Introduction - Introduce the concept of object-oriented design and discuss how it relates to solving the identified challenge (15 min)
Discover Stage: Flowchart and Pseudocode Basics - Teach students how to use flowcharts and pseudocode to break down complex problems into algorithms (30 min)
|
Examine Stage: Criteria for Success - Facilitate a group discussion to determine criteria such as cost, safety, and effectiveness for a successful solution (20 min)
Examine Stage: Research and Investigation - Encourage students to research similar technological solutions and gather insights on possible approaches (25 min)
|
Examine Stage: Root Cause Analysis - Engage students in a hands-on investigation to uncover root causes of the resource access challenge (20 min)
Examine Stage: Solution Ideation and Evaluation - Guide students in brainstorming solution ideas and evaluating them against established criteria (25 min)
|
Engineer Stage: Hypothesis Development - Assist students in developing a hypothesis predicting the outcome of their proposed solution, using evidence to support it (20 min)
Engineer Stage: Initial Planning - Have students create a detailed plan outlining how they will design and develop their Python program to address the challenge (25 min)
|
Deliverables |
1. Initial project flowchart and pseudocode draft
|
||||
Preparation |
1. Gather materials for Python programming basics, including sample code snippets and exercises.
2. Prepare examples of flowcharts and pseudocode to introduce algorithm planning. 3. Create a presentation on object-oriented programming basics. 4. Organize students into small groups for collaborative project work. 5. Ensure access to computers with Python installed for hands-on activities. |
Week 2 | Day 1 | Day 2 | Day 3 | Day 4 | Day 5 |
---|---|---|---|---|---|
Activities |
Engineer Stage: Hypothesis Refinement - Students refine their hypothesis by incorporating feedback from peers and using evidence to strengthen their predictions (20 min)
Engineer Stage: Detailed Planning - Create a comprehensive plan that outlines the design and development steps for their Python program, including flowcharts or pseudocode (25 min)
|
Engineer Stage: Peer Review and Feedback - Share plans with peer teams to receive T.A.G. Feedback (Tell something you liked, Ask a question, Give a suggestion) for improvement (20 min)
Engineer Stage: Plan Revision - Revise the detailed plan based on feedback received, ensuring all requirements are met and the design is solid (25 min)
|
Engineer Stage: Build Phase Initiation - Begin developing the initial version of the Python program, focusing on implementing object-oriented design principles (45 min)
|
Engineer Stage: Program Development - Continue building the Python program, creating clearly named variables that represent different data types and perform operations (45 min)
|
Engineer Stage: Testing and Refinement - Test the program for functionality and bugs, refining code as needed to ensure it meets the project criteria (45 min)
|
Deliverables |
1. Refined flowcharts and pseudocode for the overall program design.
2. Drafted class structure with pseudocode for key components of the program. 3. Initial implementation of classes in Python with clearly named variables. |
||||
Preparation |
1. Prepare lesson materials on object-oriented programming concepts suitable for 7th grade students, including visual aids and interactive examples.
2. Ensure access to computers or tablets with Python IDEs installed for coding activities. 3. Create and provide templates for flowcharts and pseudocode development. 4. Arrange for peer review sessions, providing guidelines and criteria for constructive feedback. 5. Provide examples of how real-world applications use object-oriented design to solve community problems. |
Week 3 | Day 1 | Day 2 | Day 3 | Day 4 | Day 5 |
---|---|---|---|---|---|
Activities |
Engineer Stage: Hypothesis Refinement - Students refine their hypothesis, incorporating feedback and evidence from previous sessions (20 min)
Engineer Stage: Detailed Plan Development - Guide students in creating a comprehensive plan for building, testing, and refining their Python program, considering algorithmic flowcharts and pseudocode (25 min)
|
Engineer Stage: Peer Feedback Session - Facilitate a session where students share their plans with peers and receive T.A.G. Feedback (Tell something you liked, Ask a question, Give a suggestion) to enhance their strategy (25 min)
Engineer Stage: Plan Improvement - Allow students to incorporate feedback into their plans, focusing on object-oriented design and variable manipulation (20 min)
|
Engineer Stage: Build and Test - Students begin constructing their Python program based on their refined plan, implementing object-oriented principles and testing initial functionality through debugging (45 min)
|
Engineer Stage: Iterative Improvement - Students gather feedback from tests, identify areas for improvement, and refine their program, ensuring variables are clearly named and efficient operations are applied (25 min)
Engineer Stage: Data Collection Planning - Guide students in developing a plan for data collection to evaluate their program's success, focusing on measuring communication and safety enhancements (20 min)
|
Do Stage: Program Implementation and Data Gathering - Students deploy their Python program in a simulated environment, collecting data on its effectiveness and interaction with the target audience (25 min)
Do Stage: Data Reflection and Analysis - Facilitate a team discussion using the Data Analysis Protocol to assess the success of their program and explore scalability options (20 min)
|
Deliverables |
1. Completed flowcharts and pseudocode that represent the entire program's algorithm.
2. Initial coded prototype of the program, including basic functionality of the community resource hub. 3. Documented list of variables used in the program with explanations of their data types and purposes. |
||||
Preparation |
1. Prepare example flowcharts and pseudocode that demonstrate breaking down complex problems into algorithms.
2. Provide sample Python code snippets that illustrate object-oriented design principles, focusing on classes and objects. 3. Set up a collaborative online coding environment where students can easily share their code and provide feedback. 4. Organize a list of potential community resources and support networks students can incorporate into their programs. 5. Ensure access to debugging tools and resources to assist students in identifying and correcting errors in their code. |
Week 4 | Day 1 | Day 2 | Day 3 | Day 4 | Day 5 |
---|---|---|---|---|---|
Activities |
Do Stage: Solution Implementation - Students deploy their Python program, ensuring all components are operational and accessible to users (25 min)
Do Stage: Data Collection Setup - Establish a method for tracking user interactions and feedback with the program, documenting initial data (20 min)
|
Do Stage: Data Analysis Protocol - Analyze the collected data to assess the effectiveness of the solution, identifying patterns and areas for improvement (30 min)
Do Stage: Team Discussion - Engage in a discussion to review data insights, evaluate the hypothesis, and explore potential improvements (15 min)
|
Share Stage: Standards-Aligned Quiz - Complete a quiz to check understanding of key programming concepts and project outcomes (15 min)
Share Stage: Presentation Preparation - Identify key content and evidence to include in the final presentation, organizing it into a coherent structure (30 min)
|
Share Stage: Presentation Design - Design and build the final presentation using selected tools, incorporating feedback and refining the message (30 min)
Share Stage: Rehearsal and Feedback - Rehearse the presentation as a team, receiving T.A.G. feedback from peers to refine delivery (15 min)
|
Share Stage: Presentation Day - Deliver the final presentation to peers and community members, showcasing the program and its impact (25 min)
Share Stage: Reflection and Celebration - Engage in a closing circle to reflect on the learning journey, celebrating achievements and growth (20 min)
|
Deliverables |
1. Fully functional Python game program addressing the challenge question.
2. Flowcharts or pseudocode explaining the algorithms used in the program. 3. Reflective presentation detailing the project's development process and outcomes. |
||||
Preparation |
1. Ensure computers and Python software are available and functioning for student use.
2. Set up testing environments for students to trial their programs and identify bugs. 3. Provide resources for creating flowcharts and pseudocode, such as software or paper and markers. 4. Organize logistics for the Community Tech Fair, including space, presentation equipment, and scheduling. 5. Prepare guidelines and criteria for peer review sessions to facilitate constructive feedback. |