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

• Many popular programming languages are based on structured programming.
• 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