
Smart Home Automation: Code, Control, and Customize.
Inquiry Framework
Question Framework
Driving Question
The overarching question that guides the entire project.How can we design and program a smart home automation system that personalizes the user experience while using parameters and procedures to manage complexity and promote code reusability?Essential Questions
Supporting questions that break down major concepts.- How can parameters improve code readability and maintainability?
- How can procedures with parameters be reused to solve similar tasks?
- How can abstraction be used to manage the complexity of a smart home automation system?
- How can we design a personalized user experience in a smart home environment using code?
Standards & Learning Goals
Learning Goals
By the end of this project, students will be able to:- Students will be able to design and implement a smart home automation system using code.
- Students will be able to use parameters effectively to control devices within the smart home system.
- Students will be able to personalize the user experience through code.
- Students will understand and apply the concepts of abstraction and code reusability in their project.
- Students will be able to create procedures with parameters to manage complexity and promote code reusability.
Teacher Specified
Entry Events
Events that will be used to introduce the project to students"The Mysterious Glitch"
Students arrive to find the classroom's lights, temperature, and sound system malfunctioning erratically. They receive a cryptic message hinting that the smart home system is compromised and they are challenged to debug and recode the system to restore order, introducing them to the core programming concepts of the project.Portfolio Activities
Portfolio Activities
These activities progressively build towards your learning goals, with each submission contributing to the student's final portfolio.Parameter Power-Up: Device Control Challenge
Students begin by learning how to control individual devices in the smart home system using parameters. This activity focuses on understanding the fundamental role of parameters in adjusting device behavior.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA code module with functions for controlling a specific smart home device using parameters.Alignment
How this activity aligns with the learning objectives & standardsAligns with CS.PC by focusing on creating parameters to control devices and making the code easier to follow and test.Procedure Perfection: Smart Home Routines
Students will create reusable procedures to execute common smart home routines. This reinforces the concept of abstraction and code reusability.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA code module containing procedures with parameters that automate common smart home routines.Alignment
How this activity aligns with the learning objectives & standardsDirectly addresses MS.PC by having students create procedures with parameters that hide complexity and can be reused.Personalization Station: User Profile Customizer
Students will design and implement a system that personalizes the smart home experience based on user profiles. This involves creating procedures with parameters to customize settings for different users.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA functional user profile system that personalizes the smart home experience.Alignment
How this activity aligns with the learning objectives & standardsCombines both CS.PC and MS.PC by utilizing parameters to organize the program and creating reusable procedures to manage user-specific settings, enhancing code maintainability and reusability.Rubric & Reflection
Portfolio Rubric
Grading criteria for assessing the overall project portfolioSmart Home Automation System Rubric
Device Control with Parameters
This category assesses the student's ability to control smart home devices using parameters effectively.Parameter Implementation
Effectiveness of using parameters to control device behavior.
Exemplary
4 PointsCode effectively uses parameters to control device behavior, with clear and well-documented parameter usage. Demonstrates a sophisticated understanding of parameter types and their impact on device functionality.
Proficient
3 PointsCode uses parameters to control device behavior, with functional and generally well-documented parameter usage.
Developing
2 PointsCode attempts to use parameters to control device behavior, but implementation is inconsistent or incomplete. Documentation is minimal or unclear.
Beginning
1 PointsCode does not effectively use parameters to control device behavior. Parameter usage is absent, incorrect, or poorly understood.
Code Readability and Maintainability
Assesses how readable and maintainable the code is in controlling a single device.
Exemplary
4 PointsCode is exceptionally readable, well-commented, and easy to maintain. Naming conventions are clear, and the code is logically organized.
Proficient
3 PointsCode is readable and maintainable with clear comments and logical organization.
Developing
2 PointsCode is somewhat readable but lacks sufficient comments or clear organization, making it difficult to maintain.
Beginning
1 PointsCode is difficult to read, poorly commented, and lacks logical organization, making it very difficult to understand and maintain.
Smart Home Routines with Procedures
This category assesses the creation and implementation of smart home routines using procedures with parameters.Procedure Design and Implementation
Effectiveness of designing and implementing procedures with parameters for smart home routines.
Exemplary
4 PointsProcedures are well-designed, efficient, and effectively use parameters to automate smart home routines. Demonstrates a sophisticated understanding of procedure scope and parameter passing.
Proficient
3 PointsProcedures are functional and use parameters to automate smart home routines.
Developing
2 PointsProcedures are partially implemented or do not effectively use parameters to automate smart home routines. Some routines may be incomplete or non-functional.
Beginning
1 PointsProcedures are not effectively used or do not automate smart home routines. Implementation is minimal or non-existent.
Abstraction and Code Reusability
Assesses the level of abstraction achieved through the use of procedures and the reusability of the code.
Exemplary
4 PointsCode demonstrates a high level of abstraction through well-designed procedures that promote code reusability. Procedures are easily adaptable for different routines and scenarios.
Proficient
3 PointsCode demonstrates good abstraction and code reusability. Procedures can be reused in multiple routines.
Developing
2 PointsCode shows some attempts at abstraction, but code reusability is limited. Procedures may be specific to a single routine.
Beginning
1 PointsCode lacks abstraction and code reusability. Procedures are not used effectively or are highly redundant.
User Profile Customization
This category assesses the design and implementation of a user profile system that personalizes the smart home experience.User Profile Design
Effectiveness of the design and structure of user profiles for storing preferences.
Exemplary
4 PointsUser profile design is comprehensive, well-organized, and effectively stores a wide range of user preferences. The design anticipates future expansion and personalization options.
Proficient
3 PointsUser profile design is functional and stores essential user preferences.
Developing
2 PointsUser profile design is basic and stores a limited set of user preferences. The design may lack organization or scalability.
Beginning
1 PointsUser profile design is incomplete or ineffective. User preferences are not stored or are poorly organized.
Personalization Implementation
Effectiveness of implementing personalization features based on user profiles.
Exemplary
4 PointsPersonalization is seamlessly integrated and highly effective. User preferences are accurately applied to customize the smart home experience. The system anticipates user needs and provides proactive personalization.
Proficient
3 PointsPersonalization is functional and customizes the smart home experience based on user profiles.
Developing
2 PointsPersonalization is partially implemented or does not fully customize the smart home experience. Some user preferences may not be applied correctly.
Beginning
1 PointsPersonalization is not effectively implemented or does not customize the smart home experience. User profiles are not used to adjust device settings.