Lesson Overview: 3.5 - Boolean Expressions

  • Here we will focus on:
    • basics of Booleans
    • its relationship with binary
    • relational operators
    • Logical Operators

What is a boolean?

  • A data type with two possible values: true or false

Boolean and Binary

So similar yet so different.

  • Boolean math and binary notation both use the same two ciphers: 1 and 0.
  • However, please note that Boolean quantities are restricted to a singlular bit (can only be either 1, or 0)
  • On the otherhand, binary numbers may be composed of many bits adding up in place-weighted form to any finite value, or size

Must Knows

  • A Boolean value is either TRUE or FALSE
  • The AP Exam will provide you with a reference sheet with the operators listed.

Relational Operators in action

  • How could you use operators to determine if the average of 5 grades is greater than 80?
  • With the grades below, use a boolean expression to determine if the average grade is above an 80 and print the result (True or False)
  • Try it in as few steps as possible!
  • Be creative! There are obviously TONS of different practical solutions
grade1 = 90
grade2 = 65
grade3 = 60
grade4 = 75
grade5 = 95

grade6 = grade1 + grade2 + grade3 + grade4 + grade5

grade7 = grade6 / 5

print ("Average Grade:", grade7)
if grade7 > 80:
    print ("True")
else:    
    print ("False")
Average Grade: 77.0
False

The versatility of relational operators:

print("100 == 100:",100==100)
print("Hello == Adios:","greeting"=="farewell")
print("Hello != Adios:","greeting"!="farewell")
print("Hello == Hola:","greeting"=="greeting")
print("5>=4:", 5>=4)
print ('')

# Notice that relational operators can even work on lists!
# For lists, the relational operator compares each respective component until an answer is derived

print("['a','b','c'] > ['x','y','z']:", ['a','b','c'] > ['x','y','z'])
print("[1,2,3,5] > [1,2,3,4]:", [1,2,3,5] > [1,2,3,4])
print("[1,2,3,5] < [1,2,3,4]:", [1,2,3,5] < [1,2,3,4])
print("[1,2,3,5] == [1,2,3,4]:", [1,2,3,5] == [1,2,3,4])
100 == 100: True
Hello == Adios: False
Hello != Adios: True
Hello == Hola: True
5>=4: True

['a','b','c'] > ['x','y','z']: False
[1,2,3,5] > [1,2,3,4]: True
[1,2,3,5] < [1,2,3,4]: False
[1,2,3,5] == [1,2,3,4]: False

Logical Operators!

These types of operators don't necessarily deal with equivalent/non-equivalent values, but they rather work on operands to produce a singular boolean result

  • AND : returns TRUE if the operands around it are TRUE
  • OR : returns TRUE if at least one operand is TRUE
  • NOT : returns TRUE if the following boolean is FALSE

Turn the following arithmetic phrases into either True or False statements as indicated USING LOGICAL OPERATORS

print("1 > 2 or 5 < 12:", 1 > 2 or 5 < 12)
# Output TRUE  using OR ^


# Output FALSE using NOT
print("24 > 8:", not 24 > 8)

# Output FALSE using AND
print("10 > 20:", 10 > 20 and 20 < 10)
1 > 2 or 5 < 12: True
24 > 8: False
10 > 20: False

Lesson Overview: 3.6 - Conditionals

Focusing on Selection

Selection: uses a condition that evaluates to true or false

Selection determines which part of an algorithm are executed based on a condition being true or false

Algorithm is a finite set of instructions that accomplish a specific task

Conditional Statements

Also known as "if statements"

Can be seen as if statements or if blocks

Can also be seen as if else statements or if else-blocks

x = 20
y = 10
if x > y:
    print("x is greater than y")
x is greater than y
x = 0
y = 10
if x > y:
    print("x is greater than y")
else:
    print("x is not greater than y")
x is not greater than y

Participation

-Calculate the total sum of two numbers, if it is equal to 200, print 200, if otherwise, print the sum.

num1 = 100
num2 = 200
sum = num1 + num2
if sum == 200:
    print("200")
else: 
    print(sum)
300

Lesson Overview - 3.7 Nested Conditionals

  • Nested conditional statements consist of conditional statements within other conditional statements
  • Utilizes "if else" statements within "if else" statements

Analyzing Code Walkthrough

  • Psuedocode to the left, block code to the right
  • Approach the problem by going through each condition one at a time
    • Decide which ones are false to skip and which ones are true to execute
score = 82
if (score >= 90)
{
    console.log("You got an A, congrats!")
}
else
{
    if (score >= 75)
    {
        console.log("Please come to retake up to a 90 next week at tutorial!")
    }
    else
    {
        console.log("You have detention!")
    }
}
Please come to retake up to a 90 next week at tutorial!
protein = 25
carbs = 36
sugar = 11
if (carbs >= 55 || protein <= 20 || sugar >= 15)
{
    console.log("Your lunch is too unhealthy, please pick a new one")
}
else
{
    if (carbs < 35 || protein < 25)
    {
    console.log ("This lunch is alright but try to add some more carbs or protein")
    }
    else 
    {
    if (sugar >= 11)
    {
    console.log ("Looks great but lets see if we can cut down on sugar, we don't want diabetes!")
    }
    else
    {
        console.log ("Amazing, you created a healthy lunch!!!")
    }
    }
}
Looks great but lets see if we can cut down on sugar, we don't want diabetes!

Writing Nested Code Activity

  1. Write a program that fits these conditions using nested conditionals:
    • If a person has at least 8 hours, they are experienced
    • If a person is experienced their salary is 90k, if they have ten hours or above their salary 150k
    • If a person is inexperienced their salary is always 50k
    • print the salary of the person at the end and whether they are experienced or not
hours = 9
if (hours >= 8)
{
    if (hours >= 10)
    {
        console.log("Congrats, you are experienced!")
        salary = 150000
    }
    else
    {
        console.log("Congrats, you are experienced!")
        salary = 90000
    }
    
}
else
{
    console.log("You suck, you are unexperienced!")
    salary = 50000
}
console.log("Salary =",salary, "dollars");
Congrats, you are experienced!
Salary = 90000 dollars

Hacks Assignments:

Conditionals:

  • Write a program that fits these conditions using nested conditionals:
    • If the product is expired, print "this product is no good"
    • If the cost is above 50 dollars, and the product isn't expired, print "this product is too expensive"
    • If the cost is 25 dollars but under 50, and the product isn't expired, print "this is a regular product"
    • If the cost is under 25 dollars, print "this is a cheap product"
expired = false
cost = 75
if (expired == false)
{
    if (cost > 50)
    {
        console.log("This product is too expensive!")
    }
    else
    {
        if (cost < 25)
        {
            console.log("This is a cheap product!")
        }
        else
        {
            console.log("This is a regular product!")
        }
    }
    
}
else
{
    console.log("this product is no good!")
}
This product is too expensive!

Boolean/Conditionals:

  • Create a multiple choice quiz that ...
    • uses Boolean expressions
    • uses Logical operators
    • uses Conditional statements
    • prompts quiz-taker with multiple options (only one can be right)
    • has at least 3 questions
  • Points will be awarded for creativity, intricacy, and how well Boolean/Binary concepts have been intertwined
quiz = {"Who is the Teacher of APCSP Period 3?":["a. Sean Yeung","b. John Mortensen", "c. Sunny Naidu", "d. Brian Shultz"], "Which coin has the most value?":["a. Quarter", "b. Dime","c. Nickel", "d. Penny"]
, "What is the legal age to drink alcohol in the U.S.?":["a. 18","b. 19", "c. 20", "d. 21"], "What is 9 plus 10?":["a. 21","b. 76", "c. 19", "d. 32"]}

# for the answers, used the question as the key and the multiple choice letter as the value 
answers = {"Who is the Teacher of APCSP Period 3?":"b", "Which coin has the most value?":"a", "What is the legal age to drink alcohol in the U.S.?":"d", "What is 9 plus 10?":"c"}
count = 0

# iterating through the dictonary's keys and values 
for k,v in quiz.items():

# printing the key and it's values 
    print(k)
    print(*v, sep = '\n')

# taking the user input for the answer, entering ab
    user_input = input("Enter Your Answer")

# comparing that with the answer's value 
    if(answers.get(k)==user_input):

        # incrementing the count 
     count = count +1

# printing the user's score
print('You got', count, 'correct answers')  
Who is the Teacher of APCSP Period 3?
a. Sean Yeung
b. John Mortensen
c. Sunny Naidu
d. Brian Shultz
Which coin has the most value?
a. Quarter
b. Dime
c. Nickel
d. Penny
What is the legal age to drink alcohol in the U.S.?
a. 18
b. 19
c. 20
d. 21
What is 9 plus 10?
a. 21
b. 76
c. 19
d. 32
You got 4 correct answers