Teaching Boolean Expressions: @codeorg CS Discoveries

I am in my second year teaching CS Discoveries on the Code.org platform. I teach the same course to students ranging from 6th grade to 8th grade. For those of you who are using the curriculum, you probably know where I am heading here. Welcome to Unit 3.

Unit 3 Lesson 10. Booleans. On the face of it, easy stuff. Then you start trying to convey the meaning of what exactly booleans and conditional statements are to your students, and their brains start to melt. Why, oh why you ask. Much of the issue is not you, my friends. It is the way students were taught leading up to your course.

Think back to the first time you were given a True/False test. Personally, I hate them, but to each their own. Students were told that they had to answer 20 “true/false questions”. You see the problem there? Kids are taught early on that true/false statements are actually questions. You really can’t have a true false question… Think about it. This way of thinking causes students to want to actually put questions in the place of conditional statements.

Is your favorite color blue? TRUE or FALSE.

How do you answer that? You don’t. To make it correct it would have to be reworded into a statement, presented as fact to derive either a response of TRUE or FALSE. So, instead…

Your favorite color is blue. TRUE or FALSE.

This one works. We can use it as a conditional statement that resolves to either be true or false. This can go in the highlighted part of the If/Else block from Code.org shown below.

You see, students who don’t understand the fundamentals of what a conditional actually is will continue to struggle. I have had students try to put all sorts of interesting stuff in there. This year, I took that extra time to ensure that they really understood what TRUE/FALSE actually means, and how valid TRUE/FALSE statements should be worded. The result is that far fewer students are confused about what actually constitutes a conditional statement.

Take that extra time and make sure that students know it MUST be a statement that can resolve to one of those two possible responses. There will be students who still try to do weird stuff with that block. For example:

When students do this, DO NOT GIVE THEM THE ANSWER! Instead, take them back to what TRUE/FALSE and conditionals actually are. Ask them to explain how raceCar.x is a conditional. This is a fundamental part of what they need to be successful in computer science. They have to get this early on, or they will continue to struggle with the concept for a long time.

Yes, that means you will have to take a little extra time to ask them questions and wait for them to come up with the answers. When they don’t, you have to take the time to back the truck up a little and ask it a bit differently. Guide them to the answer by making them answer questions and explain their thinking. While it is more time consuming up front, it saves you time in the long run, and it is much better for the student. He/she learns that when they don’t understand something, they should question their thinking and the steps they have taken. That is a skill they will need for the rest of their lives.

I keep a spoon in my room. When kids ask for answers, I hold it up and explain to them I use my spoon to eat peanut butter, not to spoon feed people answers. It’s a humorous way to remind them they need to go back and ask themselves “What went wrong?”