Why not? It seems like a simple statement, but it can be a powerful way to instill independence in your makerspace environment. In our makerspaces and classrooms, we are always working toward encouraging students to think critically and to develop 21st century skills. We, as educators, know that students have the ability to achieve anything they put their minds to. However, sometimes there are limiting factors that might get in the way of their goals. Only when you are able to really think about what is involved in that particular project and what skills you are lacking, can you start to visualize what is required to achieve your goal. In other words, a problem always has a solution. We just need to spend some time figuring out how to reach that solution and what obstacles are currently in our way. There are many examples of obstacles that students may need to address. It may be that they don’t have access to the necessary tools and equipment or it may be that they are lacking a certain skill required to solve this problem. Whatever the case may be, it is essential to identify these barriers and address them. Let me set up a scenario to help elaborate on this. While in the makerspace, a student approaches a teacher asking if they can make an alarm for their bedroom to help make sure that their siblings don’t get into their candy stash. The teacher returns with another question and asks “Why not?” This then leads into an essential back and forth between the student and teacher that prompts the student to break down the problem into its many parts. Going further with this scenario, they can then begin to determine what is required to build their invention and what skills or tools they need to acquire in order to complete each one of these parts.

This process of separating key parts encompasses the first stages of what we call Computational Thinking, or the ability to think about a problem like a computer scientist. The first stage of Computational Thinking is called decomposition. In this stage, the problem solver takes the more complex problem and breaks it down into its smaller, more manageable parts. After doing this, they are able to look for patterns in each of these parts and assess what factors influence them. Following this, they can then develop an algorithm (or recipe) that can be followed to attempt to solve the overall problem. In the scenario above, the student is encouraged to consider all of the parts of their larger problem and work towards being able to solve it. For example, the student may conclude that they will need to build an electronic device to be the alarm. They may then determine that it will need to be programmed (or coded) and then finally, they will need to install it. These are three unique challenges that make the overall build more conceivable and achievable for the student. More importantly though, by dividing (or decomposing) the larger problem into smaller parts like this, the student is now able to begin answering the teacher’s question of “Why not?”.

By focusing on the smaller parts one at a time, the student can start to identify barriers to solving the problem and what skills that they currently have that will come in handy. For example, they may decide that a Micro:bit is the way to go in making a bedroom alarm but realize that they don’t have experience in coding this particular device. In this case they may be okay with building the device but will need to assess what resources they have at their disposal that can help them code it. It may be that they go online to see if they can find a website that can help or maybe they know a fellow student who has coded Micro:bits before. If we reflect on the Computational Thinking process, we can see that, as the student starts to look at these individual parts more closely, they are essentially determining the factors that influence them. For example, our bedroom alarm builder may have some experience with coding with Micro:bits but may need to use conditional statements for this particular project. If they don’t have experience in using conditional statements, this can be identified as an influencing factor that needs to be addressed. In the end, the task of learning conditional statements then becomes a piece of their recipe or algorithm that they need to follow in order to build their invention. With this example, we can see how effective use of simple probing questions such as this allows students to see how any problem, no matter how seemingly insurmountable, is solvable… if you think like a computer scientist.