Mithat Konar
July 21, 2018

# Topics

• What is it?
• Why is it important?
• Core concepts

# What is it?

• A way of thinking about how to create computer programs: a paradigm.
• Developed in the 1950s to help create manageable computer programs.

# Why is it important?

• Theoretical reasons
• Practical reasons

# Theoretical reasons

• It's is all you need to write any “provable function.”
• Dominates theoretical thinking.

# Practical reasons

• Popular programming languages are based on it.
• Influences languages built around other paradigms.
• Thinking “structurally” helps solve problems so they are easy to program.
• Professionals often use structured programming concepts to specify ways of solving problems.

# Core concepts

• Control flow
• Block structure
• Subroutines

# Control flow

• control flow: the order in which the things happen, the way a program “flows”.
• Three kinds of control structures
• sequence: statements are executed one after the other.
• selection: choose among alternative courses of action, “making decisions.”
• repetition: repeat a set of instructions, “looping”.

# Scenario

• I need to leave my house for a couple days.
• My friend has agreed to look after my cat Ash.
• They need detailed instructions.

# First try

Ash gets a cup of food every day.
Her water needs to be filled if it's running low.
She also needs to play fetch with her favorite toy.

# Sequence

“Ash gets a cup of food every day.”

```open the bag of catfood on the counter
scoop out one cup of food
put the scoop of food into her food dish
reseal the bag of catfood```

# Selection

“Her water needs to be filled if it's running low.”

```if the water level in the water dish is low
fill a glass of water from the filtered water pitcher on the counter
pour the glass of water into the water dish```

# Repetition

“She also needs to play fetch with her favorite toy.”

```toss  Ash's favorite toy
while Ash brings it back
toss Ash's favorite toy```

# Sequence

```a = 5
b = 4
c = a * b
print("The value of c is", c)```

# Selection

```if a > 60:
```n = 1