ALGORITHMS

SRSC

BIG IDEA: A FINITE SET OF INSTRUCTIONS THAT ACCOMPLISH A SPECIFIC TASK

SEQUENCING

DO STEPS OF CODE IN THE ORDER SPECIFIED

first step -> second step -> third step

number = int(input("Enter a number: "))

result = number * 2
print("double of " + str(number) + " is " + str(result))

Enter a number:  1
double of 1 is 2
  1. Create a variable based on user input
  2. Multiply variable by two
  3. Print out both variables at the end

SELECTION

Choose TWO OR MORE OUTCOMES based on a DECISION or CONDITION

number = 6
if number % 2 == 0:
    print("Even")
else:
    print("Odd")

Even
  1. Set number to 5
  2. If number is divisible by 2 with no remainder, print “Even”
  3. Otherwise, print “Odd”

ITERATION

REPEAT STEPS BASED ON A DECISION or STOP when a condition is met

first step -> second step -> if step 2: true -> first step if step 2: false -> third step -> fourth step


fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)


apple
banana
cherry
  1. Create a list called fruits
  2. For each fruit in the list, print the fruit

ACTIVITY 1: Robot Pseudocode

Link to Robot Question 2

Write the pseudocode to move the robot onto the gray square.

Available Code:
Move forward
Turn Left
Turn Right

PseudoCode here: Move Forward Move Forward Move Forward Turn Left Move Forward Move Forward Turn Right Move Forward Move Forward Move Forward

# Math Operations:

print("Addition") #addition
result = 5 + 3
print(result)  # 8

print("\nSubtraction") #subtraction
result = 10 - 4
print(result)  # 6

print("\nMultiplication") #multiplication
result = 6 * 7
print(result)  # 42

print("\nFloat Division") #float division (float = numbers with decimal values)
result = 20 / 4
print(result)  # 5.0

print("\nInteger Division (floor division)") #floor division
result = 20 // 4
print(result)  # 5

print("\nModulus (remainder)") #remainder
result = 10 % 3
print(result)  # 1
Addition
8

Subtraction
6

Multiplication
42

Float Division
5.0

Integer Division (floor division)
5

Modulus (remainder)
1

Fibonacci
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Factorial
120

Fibonacci

def fibonacci(n): #fibonacci sequence 
    fib_series = [0, 1]  

    while len(fib_series) < n:
        next_number = fib_series[-1] + fib_series[-2]  
        fib_series.append(next_number)  

    return fib_series

n = 10  
result = fibonacci(n)
print(result)  # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

# initial length of list is 2 
# while length of list is less than amount of numbers we want in our final sequence
# add the last two numbers of the list 
# add this value to the end of the list 
# repeat until length of list reaches n

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Mini Lesson: If, Else Statements

num =0

if num > 0:
    print(str(num) + " is positive.")
elif num < 0:
    print(str(num) + " is negative.")
else:
    print(str(num) + " is zero.")

0 is zero.

Mini Lesson 2: For, While Loops

names = ["Alice", "Bob", "Charlie", "David", "Eve"]
for name in names:
    print(name)


num = 1
while num <= 5:
    print(num)
    num += 1

Alice
Bob
Charlie
David
Eve
1
2
3
4
5

Mini Lesson 3: Defining Function


def calculate_square(number):
    square = number * number
    return square #ends function 

result = calculate_square(5)
print(f"The square of 5 is {result}")

Mini Lesson 4: Input

variable1 = input("How old are you?")
print("You are " + variable1 + " years old")
You are asd years old

ACTIVITY 2: CALCULATOR

  1. Create calculator function
  2. Allow user to Choose 2 numbers and an operator
  3. Perform specified operation based on input
  4. Return result of calculation
##YOUR WORK HERE 

def add(num1, num2):
    return num1 + num2

def sub(num1, num2):
    return num1 - num2

def mul(num1, num2):
    return num1 * num2

def div(num1, num2):
    return num1 // num2

def calculator(num1, num2, op):
    result = 0
    if (op == "+"):
        result = add(num1, num2)
    if (op == "-"):
        result = sub(num1, num2)
    if (op == "*"):
        result = mul(num1, num2)
    if (op == "/"):
        result = div(num1, num2)
    return result

print(calculator(3,5,"+"))
print(calculator(5,2,"-"))
print(calculator(4,4,"*"))
print(calculator(9,3,"/"))
##Hint: Use if else statements, defining functions, input
8
3
16
3
# String Operations and Concatenation:

print("\nString Concatenation") #add together strings
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result)  # "Hello World"

print("\nString Length") #length of string
text = "This is a sample text."
length = len(text)
print(length)  # 22

print("\nString Indexing and Slicing") #string slicing 
text = "Python"
first_char = text[0]
substring = text[2:5]
print(first_char)  # 'P'
print(substring)  # 'tho'


print("\nString Repetition (Repeating Strings)")
text = "Repeat "
result = text * 3
print(result)  # "Repeat Repeat Repeat "

# Palindrome Check Algorithm:

print("\nPalindrome Check Algorithm")

def is_palindrome(text):
    text = text.replace(" ", "").lower()
    return text == text[::-1] ## == will return boolean 

result1 = is_palindrome("racecar")
result2 = is_palindrome("Hello, World!")

print(result1)  # True
print(result2)  # False
String Concatenation
Hello World

String Length
22

String Indexing and Slicing
P
tho

String Repetition (Repeating Strings)
Repeat Repeat Repeat 

Palindrome Check Algorithm
True
False

ACTIVITY 3: COUNTING VOWELS

  1. Create a function that takes a word as an input
  2. Use a for loop to iterate through each character of a word
  3. Check how many characters in a word contain vowels
  4. Return vowel number
##YOUR WORK HERE

word = "helloworld"
ct = 0

for letter in word:
    if letter in ["a", "e", "i", "o", "u"]:
        ct += 1

print(ct)
3

HOMEWORK

CREATE TEXT (string) ANALYZER:

criteria:

  1. Accepts input from user
  2. Counts total letters, numbers, spaces in a string
  3. Counts number of vowels
  4. Calculates average word length
  5. Correctly displays: total # of characters (including spaces + numbers), total vowels, average word length

    other criteria:

  6. ensure that program handles upper and lowercase spelling
  7. Test multiple inputs to ensure accuracy

    Criteria for above 90%:

  8. Add a unique program, function, or feature not specified by criterias
# String Analyzer

# 1. accepts input from user
string = input("input a string:")

# 2. counts total letters, numbers, spaces in a string

total_char = 0
total_letter = 0
total_num = 0
total_space = 0

for character in string:
    if character.isalpha():
        total_letter += 1
    if character.isnumeric():
        total_num += 1
    if character.isspace():
        total_space += 1
    total_char += 1

# 3. counts number of vowels

total_vowel = 0

for character in string:
    if character in ["a", "e", "i", "o", "u"]:
        total_vowel += 1

# 4. calculate average word length

word_len = 0

words = string.split()
for word in words:
    word_len += len(word)

average_len = word_len / len(words)

# 5. correctly displays: total # of characters (including space + numbers), total vowel, average word length

print("total characters:", total_char)
print("total letters:", total_letter)
print("total numbers:", total_num)
print("total spaces:", total_space)

print("total vowels:", total_vowel)

print("average word length:", average_len)

# add a unique program, function, or feature not specified by criterias

import sys
!{sys.executable} -m pip install textblob -q

from textblob import TextBlob

polarity = TextBlob(string).sentiment.polarity

if polarity > 0:
    print("sentiment: positive")
if polarity == 0:
    print("sentiment: neutral")
if polarity < 0:
    print("sentiment: negative")
input a string: I am extremely disappointed with the quality of service provided by this company.
total characters: 81
total letters: 68
total numbers: 0
total spaces: 12
total vowels: 24
average word length: 5.3076923076923075
sentiment: negative