# Lesson 16: Conditionals: Conditionals with Cards

## Overview

This lesson demonstrates how conditionals can be used to tailor a program to specific information. We don’t always have all of the information we need when writing a program. Sometimes you will want to do something different in one situation than in another, even if you don't know what situation will be true when your code runs. That is where conditionals come in. Conditionals allow a computer to make a decision, based on the information that is true any time your code is run.

## Purpose

One of the best parts of teaching conditionals is that students already understand the concept from their everyday lives.

This lesson merges computer science into the real world by building off of their ability to tell if a condition is true or false. Students will learn to use `if` statements to declare when a certain command should be run, as well as `if / else` statements to declare when a command should be run and what do run otherwise. Students may not recognize the word conditionals, but most students will understand the idea of using "if" to make sure that some action only occurs when it is supposed to.

## Objectives

### Students will be able to:

• Define circumstances when certain parts of a program should run and when they shouldn't.
• Determine whether a conditional is met based on criteria.
• Traverse a program and predict the outcome, given a set of input.

## Preparation

Heads Up! Please make a copy of any documents you plan to share with students.

## Vocabulary

• Conditionals - Statements that only run under certain conditions.

# Teaching Guide

## Warm Up (20 min)

### Vocabulary

This lesson has one new and important word:

Conditionals - Say it with me: Con-di-shun-uls

Statements that only run under certain conditions.

### Introduction

• We can start this lesson off right away
• Let the class know that if they can be completely quiet for thirty seconds, you will do something like:
• Sing an opera song
• Give five more minutes of recess
• Do a handstand
• Start counting right away.
• If the students succeed, point out that they succeeded, so they get the reward.
• Otherwise, point out that they were not completely quiet for a full thirty seconds, so they do not get the reward.
• Ask the class "What was the condition of the reward?"
• The condition was IF you were quiet for 30 seconds
• If you were, the condition would be true, and you would get the reward.
• If you weren't, the condition would be false, so the reward woud not apply.
• Can we come up with another conditional?
• If you can guess my age correctly, the class can give you applause.
• If I know an answer, I can raise my hand.
• What examples can you come up with?
• Sometimes, we want to have an extra condition, in case the "IF" statement is not true.
• This extra condition is called an "ELSE" statement
• When the "IF" condition isn't met, we can look at the "ELSE" for what to do
• Example: IF I draw a king from this deck of cards, everybody claps. Or ELSE, everyone says "Awwwwwwe."
• Let's try it. (Draw a card and see if your class reacts appropriately.)
• Ask the class to analyze what just happened.
• What was the IF?
• What was the ELSE?
• Which condition was met?
• Believe it or not, we have even one more option.
• What if I wanted you to clap if I draw a 7, or else if I draw something less than seven you say "YAY," or else you say "Awwwwwwwe"?
• This is why we have the terms If, Else-If, and Else.
• If is the first condition
• Else-If gets looked at only if the "If" isn't true.
• Else gets looked at only if nothing before it is true.

Now let's play a game.

## Main Activity (20 min)

### Conditionals with Cards Sample Program - Teacher Prep Guide

Directions:

• Create a few programs with your class that depend on things like a card's suit, color, or value to award or subtract points. You can write the program as an algorithm, pseudocode, or actual code.

Here is a sample algorithm:

```if (CARD is RED)

Else
Award OTHER team 1 point
```

Here is a sample of the same program in pseudocode:

```If (card.color == RED){
points.yours = points.yours + 1;
}

Else {
points.other = points.other + 1;
}
```
• Decide how you want to split your class into teams.
• Each team should have a pile of cards (at least as many cards as team members) nearby.
• Put one of your “Programs” up on the board for all to see.
• Have the teams take turns drawing cards and following the program to see how many points they score in each round.
• Play several times with several different programs to help the students really understand conditionals.

Once the class has had some practice, you can encourage students to nest conditionals inside one another:

```If (CARD is RED)

Else
If (CARD is higher than 9)
Award OTHER team 1 point
Else
Award YOUR team the same number of points on the card
```

Here is the same program in pseudocode:

```If (card.color == RED ){
points.yours = points.yours + 1;
}
Else {
if (card.value > 9){
points.other = points.other + 1;
}
Else {
points.yours = points.yours + card.value;
}
}
```

## Wrap Up (15 min)

### Flash Chat: What did we learn?

Lesson Tip

Flash Chat questions are intended to spark big-picture thinking about how the lesson relates to the greater world and the students' greater future. Use your knowledge of your classroom to decide if you want to discuss these as a class, in groups, or with an elbow partner.

• If you were going to code this up in Blocky, what would you need to add around your conditionals to let the code run more than one time? (A loop)
• What other things do you do during the day under certain conditions?
• If you are supposed to do something when the value of a card is more than 5, and you draw a 5, do you meet that condition?
• Notice that conditions are either "True" or "False." There is no assessment of a condition that evaluates to "Banana."
• When you need to meet several combinations of conditions, we can use something called "nested conditionals."
• What do you think that means?
• Can you give an example of where we saw that during the game?
• What part of that game did you like the best?

### Journaling

Having students write about what they learned, why it’s useful, and how they feel about it can help solidify any knowledge they obtained today and build a review sheet for them to look to in the future.

#### Journal Prompts:

• What was today's lesson about?
• How do you feel about today's lesson?
• What is a conditional? How did you use a conditional today?
• What are some of the conditionals you used today? Can you come up with some more that you would use with a deck of cards?

## Assessment (5 min)

### Conditionals with Cards - Assessment

Hand out the assessment worksheet and allow students to complete the activity independently after the instructions have been well explained. This should feel familiar, thanks to the previous activities. Here's a Conditionals with Cards - Assessment Video to watch as a guide.

## Extended Learning

Use these activities to enhance student learning. They can be used as outside of class activities or other enrichment.

True/False Tag

• Line students up as if to play Red Light / Green Light.
• Select one person to stand in front as the Caller.
• The Caller chooses a condition and asks everyone who meets that condition to take a step forward.
• If you have a red belt, step forward.
• If you are wearing sandals, take a step forward.
• Try switching it up by saying things like "If you are not blonde, step forward."

Nesting

• Break students up into pairs or small groups.
• Have them write if statements for playing cards on strips of paper, such as:
• the suit is clubs
• the color is red
• Have students create similar strips for outcomes.
• Subtract one point
• Once that's done, have students choose three of each type of strip and three playing cards, paying attention to the order selected.
• Using three pieces of paper, have students write three different programs using only the sets of strips that they selected, in any order.
• Encourage students to put some if statements inside other if statements.
• Now, students should run through all three programs using the cards that they drew, in the same order for each program.
• Did any two programs return the same answer?
• Did any return something different?

## Standards Alignment

#### CSTA K-12 Computer Science Standards

AP - Algorithms & Programming
• 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.