All right. Let's go through those classroom discussion questions because some of these are starting to a little hard. That's exactly again what we want. Classroom discussion questions although they look like multiple choice questions are not intended as summative assessment, they're intended as discussion starters around problems, challenges that students really should have, and we want to make sure they happen those problems. So 10, 20, 30 percent of students maybe get it right the first time. It's really about the discussion and the analysis of hearing that. That said, this was definitely a tough one to start with. I'll just be honest. It's not so much about Boolean expressions but it is brought up in the very first part of Runestone in 3.1, and it's done on the AP exam and on other things trying to get you to apply your knowledge of modulo and division in ways usually with Boolean expressions to solve problems. So to be nice though, I actually gave the following information. So num modulo 10 that gives you the last digit of an integer, modulo 100 gives you the last two digits and also point onto students, the number of zeros in the modulo that tells you how many of the last digits, and that's what modulo gives you because it gives you the remainder after doing integer division. To remind them of that, that when you actually are doing integer division, it removes the last digit or last two digits in a particular number. So here was the question, what expression will give us the fourth last digit of an integer? Forth last digit? Yeah, that's a computer science term. We might say that. So I want just the number five not, 5, 6, 7, 8. The answer is D. Now again, so I said this is not really Boolean expressions, but it's related to this idea of is num modulo 2 equals 0, and we always know and our students can usually get that any number modulo 2 if it's equal to 0 that means it's even because modulo 2 equal to 1 is on. This is just going the next step, and it brings up this idea of problem-solving and how do we analyze expression. So I think that perspective is really good for students. But, how would we explain this to them? How would we work through this in the same way we worked through the other answers and figure out what they get? Because that's something you'd want to ask all the students to do. What does A gives you? What does B gives you? What dos C give you? Not only in the example for value for int, but for any number. So you can ask for the specific and then say, ''Well, do a couple of other numbers and see if you can give me a general description of what this produces.'' Let's walk through the correct answer though. So numb modulo 10,000 using my trick from above that modulo and however many zeros that's going to give you the last n digits? How many zeros? So four zeros there. This is going to give me, if I take 1, 2, 3, 4, 5, 6, 7, 8 modulo, 100,000 gives me 5, 6, 7, 8, the last four digits. Then we do integer division. So 5, 6, 7, 8 modulo 1,000 is going to give us just the five. So that essentially dividing by 1,000, however many zeros are in that, that's how many digits we essentially wipe off. Because 5,000 divided by 1,000. Well, the integer version value is five with 678 leftover but its integer division. Let's look at the next one. Which of the following does the same as this given code above? So the key here is that for a given code, we have if foo greater than 33 and it's a simple if else, nothing else other than that, what is the opposite of that? So you see that the then in the original has go blue and the else has go red. Both of the interruptions down here have go red and then go blue. So we need to figure out what's the opposite expression, and this is a challenge for students. Note, this is more on the easier end of things. But I still think it's really valuable and you can show them a technique that uses for other similar types of questions that maybe aren't quite so cut and dry and, that is to use a number line. So I would want the students to be drawing these. By the way, Google image search and say number line 30 to 40 and you get these great things that have more things than you want, but you crop them down in Google slides and scrape. So I would want them to draw the number line for the original code and say, ''Okay, we want to have just the opposite of that.'' The key thing to notice in this top original code is that, when is go red printed? It's when it's 33 or less. So the number line at 33 is there and they're probably really shouldn't be that space between the go red and the go blue. But I feel like you have to show a little bit, but it's anything less than or equal to 33 is go red. So what that allows us to do is in the bottom ones. Let's look at the one on the right because that's the correct answer. When we draw if foo less than or equal to 33, go red, that number line is going to match the one above it and that's how we know it does the same thing. Let's look at the one on the left. This one is not the same output, and that's because go blue there includes the value 33. So in this case, it says go blue if it's greater than or equal to 33 which is not what the original code did. Go red is only if it's less than 33. So definitely, use number lines. Third question, what best describes what this code does? Now, this isn't even a good question necessarily for summative assessment because it's a little bit wishy-washy. Best describes what the code does. Look at all of our options. There's a reasonable feedback. Well, that might involve interpretation about like maybe what does it mean to be at risk in the class? But it's a great discussion question because it's not like incredibly cut and dry and the students are going to have to argue a little bit about what that might mean. Again, the correct answer is C. It provides student reasonable feedback unless they are acing the class. Why is this? First takeaway. First, a lot of times when students see a bunch of these if with brackets and whatever, they just assume it's an if else if else, and that's what this should be toward correctly. But it's not, and so really reminding students that they had to look at all the details and not make assumptions especially in a testing environment is really important. So again what happens here is if your greatest greater than nine, you'll see you have a 95. Well, probably got a 95, then we'll go over what a better example would be. So then you'll print out excellent. But then that ends that if statements and now we go to the next step. If your grade is less than 75, is 95 less than 75? No. So that's false. It's also going to print out good job. Now, did we say that it shouldn't print out a new job, that's the whole idea of the wishy-washy as a reasonable feedback. But we would say, ''Well, it looks like the code writer intended that if you had an A, you get an excellent. If you had a B or anything in a C range above or equal to a 75, then you get a good job, and if it's below 75, you get a please see me. So that's it. The other thing that's really important about this is to help students understand what test cases do they need to pick in order to what really test this code effectively. Do we just randomly pick numbers like 95? How many different numbers do I need to pick? So in this case, we want to talk to students about the fact that we need to test the edge cases. The cases where the Boolean expression is just barely true and just barely false, and that we don't actually necessarily need a test more cases beyond that. Because for example, if grade greater than equal to 90, what's the one it's barely true? Ninety. That's the smallest possible number that that can be true, and what's one where it's barely false? Well, let's assume we're talking integers, 89. Otherwise, it's like 89.9999. So these barely true and barely false, if we test those and see that those produce the output that we think is reasonable, then that's going to be good enough. If I've tested 90, I don't need to test 95 because I know that 95 is greater than or equal to 90. Because 90 is greater than equal to 90. All right. Another one of course that we would only test that first part, we need to test the next case as well which is, 'are you just barely in the situation where you're doing good enough that I don't need to know? Or are you just barely in the situation where it's not true and why is this 76 and 75? Grade less than 75. Is 75 less than 75? False. Is 76 less than 75? False. I got you. Should be 75 is less than 75. That's false. How about 74 is less than 75? That's true. So this is tricky and hopefully maybe you can talk your students into finding this problem too. So the two things to test here would be 75 is something that's barely false and 70 for something that is barely true.