Ryan: FYS Computational Reasoning Fall 2025
Image from "Healers of the Wild: People Who Care for Injured and Orphaned Wildlife" by Shannon K. Jacobs, by way of the Wild Bird Fund.
as sequence + contingency
if some condition, do it all over again tomorrow
arrow
flow
"go to..."
circle
terminal/connector
"and then..."
diamond
decision/branch
"if this is true..."
rectangle
module/action
"do this"
Wake Up
Shower
Eat
Read
Flow Chart My Morning Routine
Make breakfast
BUT!
On M,W,F I have an egg, on Tu,Th I have a protein shake...
M,W,F
Shake
Egg
Wake Up
Shower
Eat
Read
Flow Chart My Morning Routine
Make
breakfast
BUT!
On M,W,F I have an egg, on Tu,Th I have a protein shake...
M,W,F
Shake
Egg
Three Skills
flowChart2words
words2flowChart
fixFlowChart
A
D
B
C
E
F
do A
if B, do C,
otherwise do D
do Eif A, do B
do C
if not D, do EB
A
E
D
C
enter
exit
step*
module<module> ::= enter <step>* exit
<step> ::= action | <contingency>
<contingency> ::= <condition>
<module>
[<module>]
<condition> ::= condition
action
module
module
exit
condition
enter
true
false
stepThis can be a single action or any combination of sequence and contingency.
MODULE: any chunk of activity that can be popped into or out of a flowchart because of its single entry single exit property.
MODULE
condition
A
do action
B
do action
C
if condition A
do action B
else
do action C
the diamond splits the
flow into branches
the circle rejoins the
branches into a single exit
condition
A
do action
B
do action
C
if condition A
do action B
else
do action C
Draw a flow chart:
If the light is green, go.
If it is red, stop.
"What you do at a traffic light"
Q1008
Draw a flow chart:
If it has 4 legs it is a donkey but if it has 2 legs it is a monkey, but if if has 0 legs it is a snake. Otherwise it is a spider.
While it is raining,
keep your umbrella up.
is it raining?
umbrella up
is it raining?
umbrella up
is it raining?
umbrella up
While it is raining, use an umbrella.
If it is raining, use an umbrella, if not, put the umbrella away. Check every few minutes to see if it is still raining.
Is it raining?
Yes? Use an umbrella
Check again
Put the umbrella away
raining?
use umbrella
put umbrella away
Keep your umbrella up until it stops raining.
Use an umbrella. Check every few minutes to see if it is still raining. When it stops, put the umbrella away.
Use an umbrella
Check for rain
If no rain, proceed.
Put the umbrella away
use umbrella
put umbrella away
Keep your umbrella up until it stops raining.
stopped raining?
In a WHILE loop, the "action" may be executed ZERO OR MORE TIMES
In an UNTIL loop, the "action" is always executed AT LEAST ONCE (i.e., "one or more times")
action stepaction
module
module
exit
condition
enter
true
false
module
exit
condition
enter
true
false
module
exit
condition
enter
true
false
module
exit
enter
true
false
condition
enter
exit
step*
contingent stepwhile stepuntil stepmodule<module> ::= enter <step>* exit
<step> ::= action | <contingency> | <while> | <until>
<contingency> ::= "if" <condition> <module> [<module>]
<while> ::= "while" <condition> <module>
<until> ::= <module> "until" <condition>
<condition> ::= condition
Q1003
Draw a flow chart:
If the light is red, STOP and remain stopped until green.
Otherwise GO.
while red, stop. Then Go
STOP
RED
GREEN
GO
Q1003
You are a self-driving car engineer.
What's wrong with the logic here?
Q1003
If the light is red, STOP.
If light is green and no cars, go -
otherwise STOP.
If stale yellow, STOP -
otherwise GO.
Fix this flow chart!
Q1005
Draw the flow chart.
If A and If B then do C.
Otherwise, do D.
Work until you drop
Whistle while you work
If you can't be with the one you love, love the one you're with.
If all else fails, read the instructions
If at first you don't succeed, try, try, try again.
Draw flow charts for these sayings:
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
How to find wildlife rehab
wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
wildlife rehab
How to find wildlife rehab
wildlife rehab
How to find wildlife rehab
hurt or sick?
feathered?
nestling
intact?
see nest?
safe?
put in nest
parents?
make nest
put in nest
parents?
leave
leave
put in bushes
parents?
leave
wildlife rehab
wildlife rehab
leave
wildlife rehab
fledgling
Y
Y
Y
Y
Y
Y
Y
wildlife rehab
wildlife rehab
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions: Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions:
Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
scrub
until clean
rinse
until clear
inspect
if OK, done
else, start over
repeat
repeat
scrub
until clean
repeat
rinse
until clear
inspect
until OK
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions:
Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
I scored an amazing summer practicum washing pots in a restaurant. My boss is a computational thinker and wants me to post a flowchart describing the pot-washing process on the wall behind the pot-washing sinks. Here are her instructions:
Scrub until clean. Rinse until clear. Inspect. If not OK, start over.
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
Q1021. Consider this algorithm for converting a number in base 10 to its base 2 representation:
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
Divide the number by two recording both the quotient and the remainder.
Write the remainder down
Take the quotient and divide it by two, recording both the quotient and the remainder.
Write the remainder to the LEFT of what's already written.
Repeat until the quotient reaches zero.
Consider this algorithm for converting a number in base 10 to its base 2 representation:
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
Divide the number by two recording both the quotient and the remainder.
Write the remainder down
Take the quotient and divide it by two, recording both the quotient and the remainder.
Write the remainder to the LEFT of what's already written.
Repeat until the quotient reaches zero.
N is our number
Q = N / 2
R = remainder
Write R
Treat Q as the new N
If Q not 0, repeat
repeat
Q = N / 2
Write remainder
N = Q
until Q = 0
Consider this algorithm for converting a number in base 10 to its base 2 representation:
Proceed Stepwise: (1) Pseudocode; (2) Outside; (3) Inside
Divide the number by two recording both the quotient and the remainder.
Write the remainder down
Take the quotient and divide it by two, recording both the quotient and the remainder.
Write the remainder to the LEFT of what's already written.
Repeat until the quotient reaches zero.
Ryan: Introduction to Computational Reasoning Fall 2025
Here is the updated version of our card sorting robot:
Ryan: Introduction to Computational Reasoning Fall 2025
Here is the updated version of our card sorting robot:
1 D
2 C
3 IFN1 8 # swap
4 IFN2 20 # START OVER
5 U
6 E
7 GOTO 1
8 N #swap initiate
9 U
10 E
11 S
12 D
13 W
14 U
15 N
16 D
17 E
18 S #swap complete
19 GOTO 2
20 H #IF AT END
21 GOTO 12 C
FLAG=-1
SWAP
1 D
5U
6E
FLAG=-2
20 H
Ryan: Introduction to Computational Reasoning Fall 2025
Tweak the flowchart so that it has an exit
1 D
2 C
3 IFN1 8 # swap
4 IFN2 20 # START OVER
5 U
6 E
7 GOTO 1
8 N #swap initiate
9 U
10 E
11 S
12 D
13 W
14 U
15 N
16 D
17 E
18 S #swap complete
19 GOTO 2
20 H #IF AT END
21 GOTO 1set sorted = true
set sorted = false
2 C
FLAG=-1
SWAP
1 D
5U
6E
FLAG=-2
20 H
NOT SORTED
exit
What do we need for that "if not sorted" to work?
2 C
FLAG=-1
SWAP
1 D
5U
6E
FLAG=-2
20 H
Flow chart for "move all cards up"
Swap two cards (IRIS)
Swap first and last card
Sort
Perceptron learning algorithm
8 queens
Graph search.
https://docs.google.com/drawings/d/1-pneUTYTj9YEm4qI3R66KvOqEXcfHTnE4JPH4ZszZME/edit?usp=sharing
https://docs.google.com/drawings/d/1V4CkFr788xVPtfxIZsvQoNAosbi03Zf4UdiNSMfSDXc/edit?usp=sharing
Read Niklaus Wirth's 1971 classic "Program Development by Stepwise Refinement."
Some Notation: In logic we call a condition, p, which is true of a thing, x, a predicate and we write it p(x).
In set theory the symbol means "is a member of" and the symbol means "is a subset of (or is the same set)."
And the expression means "The set B sub r is all x's such that x is an element of A and the predicate r holds for x."
On page 153 the author says find a representation p(x) of in the form
This means identifying two things that must be true of a possible solution for it to be a solution. In the case of the 8 queens problem where p is "the queens are arranged in a manner than none can attack another" can be broken down into two conditions: r = "one queen in each column" and q = "no queens share a diagonal or row."