Lesson Plan: Chapter 3

Connecting to CSTA Standards

GradesConceptSubconceptStandard NumberPractice
6-8Computing SystemsTroubleshooting2-CS-03Testing and Refining Computational Artifacts: 6.2

Systematically identify and fix problems with computing devices and their components.

Since a computing device may interact with interconnected devices within a system, problems may not be due to the specific computing device itself but to devices connected to it. Just as pilots use checklists to  troubleshoot problems with aircraft systems, students should use a similar, structured process to troubleshoot  problems with computing systems and ensure that potential solutions are not overlooked. Examples of  troubleshooting strategies include following a troubleshooting flow diagram, making changes to software to  see if hardware will work, checking connections and settings, and swapping in working components.

Connecting to NGS Standards

GradesStandard NumberConceptPractice
6-8MS-ETS1-2Engineering DesignEvaluate competing design solutions using a systematic process to determine how well they meet the criteria and constraints of the problem

Learning Outcomes/Goals

In this chapter, students explore a way to gather feedback from the users of their device - in this case, various types of fireflies. In the project recipe, they explore a typical software process of trying an approach, watching it fail, and rebuilding it based on the results of debugging.

It's common for software and hardware projects to go through many iterations before a good result is found that can support a diverse userbase. While project plans can support many possible outcomes, it's impossible to plan for every use case to be supported from the beginning. For this reason, user testing is a critical element of the development process. Even a simple 'A/B' test to gather 'likes' or 'dislikes' can help an engineer solve problems with their designs.

Students are encouraged to research the design documents of systems such as Google Nest to determine how the team behind this product test and handle various user scenarios.

Differentiated Instruction

Lower level studentsHigher level students
Can complete the project recipe in the emulator and explain how this type of feedback-gathering mechanism works in the 'real world'Can consider other ways to get feedback in the system other than button pushes, perhaps using a motion sensor to test how many fireflies enter and leave the shelter

Transfer Learning

Troubleshooting is a typical activity in all areas of human interfacing with devices. Students can explore their neighborhoods to see how their town troubleshoots and improves civic machinery such as stoplights, snow removal sytems, drains, and street lights.


  • Debugging: The process of finding and fixing flaws in software, also known as 'bugs'.
  • HTTP: HyperText Transfer Protocol, or HTTP, is a protocol that allows data to be exchanged over the internet.
  • Software architecture: a system's elements comprise its architecture. This term can also refer to the design of the system itself.
  • Wi-Fi: a type of wireless network protocol used for local networking and connecting to the internet. Wi-Fi uses radio waves to exchange data.


Students are tasked with understanding how building software is an iterative process that requires access to user feedback and debugging.

Research the ways that engineers access feedback and debug their systems. Sketch out a system such as the one built in the project recipe and show the places that might need troubleshooting.Write a summary of how user feedback helped shape the redesign of the system, the various that troubleshooting helped improve the design, and the final solution that met users' needs more appropriately.

Quiz Answers

Micro:bit devices need an extra layer of hardware to connect to Wi-Fi.

a. True

b. False

To send messages between only some devices, use:

a. A wire

b. A gated group

c. An encoded signal

To discover and fix code problems and errors, use:

a. A manual

b. Debugging tools

c. A radio signal

More Resources/Materials

Solution Code:

The full solution codebase can be found in the micro:bit web siteopen in new window and on GitHubopen in new window

Assignment and Rubric: How'd They Do This?

Think about a piece of connected hardware or software program that exists in your home or school and try to backward-engineer the thought process that went into its development. Examples are a smart thermostat, a connected refrigerator, or even a fictional Internet-connected toaster that you imagine might exist.

Construct a list to outline the development and testing processes needed to ensure that the device runs smoothly and that errors are handled. Start by describing what this program is designed to do, and then build a list or diagram showing the steps involved in the development process. Include the way that each step of the development process might have been tested to verify that it works.

ExemplaryAdequateNeeds Improvement
The student describes what the connected device targeted is designed to do and lists or diagrams at least three steps involved in its design, including ways that the device must be tested to ensure proper functionality.The student describes the device and provides a shorter listThe student neglects to provide a list of development steps.

*tip: prior to saving as a PDF, select the 'light' mode at the top using the 'sun' icon.