Smart Home Automation: Code, Control, and Customize.
Created byKyle Creasy
17 views0 downloads

Smart Home Automation: Code, Control, and Customize.

Grade 10Computer Science2 days
In this project, students design and program a smart home automation system, focusing on personalized user experiences through parameters and procedures. They will learn to control devices, automate routines, and customize user profiles, emphasizing code reusability and abstraction. The project involves debugging a malfunctioning smart home system, creating code modules for device control, and implementing user-specific settings. Students reflect on challenges, code effectiveness, and potential improvements to enhance user experience and system functionality.
Smart Home AutomationParametersProceduresCode ReusabilityAbstractionUser PersonalizationDevice Control
Want to create your own PBL Recipe?Use our AI-powered tools to design engaging project-based learning experiences for your students.
📝

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

CS.PC
Primary
Programming Concepts - Create parameters to organize a program to make it easier to follow, test, and debug.Reason: This standard aligns directly with the project's focus on using parameters to control devices and personalize user experiences.
MS.PC
Primary
Programming Concepts - Create procedures with parameters that hide the complexity of a task and can be reused to solve similar tasks.Reason: This standard is highly relevant as the project requires students to create procedures with parameters for managing the smart home system's complexity and promoting code reusability.

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.
Activity 1

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.
1. Choose one smart home device (e.g., lights, thermostat, speaker).
2. Identify the controllable aspects of the device (e.g., brightness for lights, temperature for thermostat, volume for speaker).
3. Write code to control the device using parameters. For example, create a function that takes brightness as a parameter to control the lights.
4. Test the code by varying the parameter values and observing the device's response.

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.
Activity 2

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.
1. Identify common routines in a smart home (e.g., 'Good Morning,' 'Good Night,' 'Movie Time').
2. Define the actions that each routine should perform (e.g., 'Good Morning' might turn on lights, adjust the thermostat, and start playing music).
3. Create procedures with parameters to implement these routines. For example, the 'Good Morning' routine might accept a 'wakeUpTime' parameter.
4. Test the routines to ensure they execute the correct actions with the appropriate parameter values.

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.
Activity 3

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.
1. Design a user profile system that stores preferences for different users (e.g., preferred temperature, lighting levels, music genres).
2. Create procedures with parameters to load and apply user profiles. These procedures should adjust device settings based on the user's preferences.
3. Implement a mechanism for users to select their profile when interacting with the smart home system.
4. Test the system with multiple user profiles to ensure that personalization is working correctly.

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 portfolio

Smart Home Automation System Rubric

Category 1

Device Control with Parameters

This category assesses the student's ability to control smart home devices using parameters effectively.
Criterion 1

Parameter Implementation

Effectiveness of using parameters to control device behavior.

Exemplary
4 Points

Code 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 Points

Code uses parameters to control device behavior, with functional and generally well-documented parameter usage.

Developing
2 Points

Code attempts to use parameters to control device behavior, but implementation is inconsistent or incomplete. Documentation is minimal or unclear.

Beginning
1 Points

Code does not effectively use parameters to control device behavior. Parameter usage is absent, incorrect, or poorly understood.

Criterion 2

Code Readability and Maintainability

Assesses how readable and maintainable the code is in controlling a single device.

Exemplary
4 Points

Code is exceptionally readable, well-commented, and easy to maintain. Naming conventions are clear, and the code is logically organized.

Proficient
3 Points

Code is readable and maintainable with clear comments and logical organization.

Developing
2 Points

Code is somewhat readable but lacks sufficient comments or clear organization, making it difficult to maintain.

Beginning
1 Points

Code is difficult to read, poorly commented, and lacks logical organization, making it very difficult to understand and maintain.

Category 2

Smart Home Routines with Procedures

This category assesses the creation and implementation of smart home routines using procedures with parameters.
Criterion 1

Procedure Design and Implementation

Effectiveness of designing and implementing procedures with parameters for smart home routines.

Exemplary
4 Points

Procedures 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 Points

Procedures are functional and use parameters to automate smart home routines.

Developing
2 Points

Procedures are partially implemented or do not effectively use parameters to automate smart home routines. Some routines may be incomplete or non-functional.

Beginning
1 Points

Procedures are not effectively used or do not automate smart home routines. Implementation is minimal or non-existent.

Criterion 2

Abstraction and Code Reusability

Assesses the level of abstraction achieved through the use of procedures and the reusability of the code.

Exemplary
4 Points

Code 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 Points

Code demonstrates good abstraction and code reusability. Procedures can be reused in multiple routines.

Developing
2 Points

Code shows some attempts at abstraction, but code reusability is limited. Procedures may be specific to a single routine.

Beginning
1 Points

Code lacks abstraction and code reusability. Procedures are not used effectively or are highly redundant.

Category 3

User Profile Customization

This category assesses the design and implementation of a user profile system that personalizes the smart home experience.
Criterion 1

User Profile Design

Effectiveness of the design and structure of user profiles for storing preferences.

Exemplary
4 Points

User 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 Points

User profile design is functional and stores essential user preferences.

Developing
2 Points

User profile design is basic and stores a limited set of user preferences. The design may lack organization or scalability.

Beginning
1 Points

User profile design is incomplete or ineffective. User preferences are not stored or are poorly organized.

Criterion 2

Personalization Implementation

Effectiveness of implementing personalization features based on user profiles.

Exemplary
4 Points

Personalization 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 Points

Personalization is functional and customizes the smart home experience based on user profiles.

Developing
2 Points

Personalization is partially implemented or does not fully customize the smart home experience. Some user preferences may not be applied correctly.

Beginning
1 Points

Personalization is not effectively implemented or does not customize the smart home experience. User profiles are not used to adjust device settings.

Reflection Prompts

End-of-project reflection questions to get students to think about their learning
Question 1

Reflect on the challenges you faced while using parameters to control devices in the smart home system. How did you overcome these challenges?

Text
Required
Question 2

How did creating procedures with parameters help you manage the complexity of the smart home automation system and promote code reusability?

Text
Required
Question 3

In what ways did you personalize the user experience through code in your smart home system? What specific parameters or procedures did you use to achieve this personalization?

Text
Required
Question 4

What did you learn about the importance of abstraction in managing the complexity of a smart home automation system? Provide specific examples from your project.

Text
Required
Question 5

How effective were you in creating procedures with parameters to manage complexity and promote code reusability?

Scale
Required
Question 6

To what extent do you agree with the following statement: 'Using parameters improved the readability and maintainability of my code.'

Scale
Required
Question 7

Which aspect of the smart home automation system project did you find most challenging, and why?

Multiple choice
Required
Options
Device Control with Parameters
Creating Smart Home Routines
Implementing User Profile Customization
Overall System Integration
Question 8

If you were to continue working on this project, what is one specific improvement you would make to enhance the user experience or system functionality?

Text
Required