Welcome

Course Trailer 2020 (6m44s)

I hear and I forget.

I see and I remember.

I do and I understand.

- Confucius

Agenda

HOW?

Logistics

Materials: books, readings, viewings

The Work & Its Assessment

Platforms

SLOW

Stepwise

Pseudocode

Notes (google drive)

PreCourse Survey

Survey

WHO?

WHO?

WHY?

George Forsythe cited Alan Perlis in his 1958 address for the Mathematical Association of America:
 

"Whereas we think we know something when we learn it, and are convinced we know it when we can teach it, the fact is that we don’t really know it until we can code it for an automatic computer!"

(Denning 2019, 180–81)

"A decade later, Forsythe echoed the claim that computing provides general-purpose mental tools that would serve a person for a lifetime. Both Perlis and Forsythe firmly believed that everyone in every field will benefit from learning computing’s procedural ways of doing things. They believed that computational models would be useful in all fields"

(Denning 2019, 180–81)

Where Will I Use This Stuff?

Your own continued training in things technical

Working with people who have serious tech chops

Work in organizations

Your role as a citizen considering policy options

Life in general

HOW?

Logistics

Materials: books, readings, viewings

The Work & Its Assessment

Platforms

LOGISTICS

Class held in-person on alternate weeks

Tu 10-12, Th 4-6

Class sessions recorded. Recordings available ASAP (24-48 hours)

LOGISTICS

Mo Tu We Th Fr
Introduce Topic 1

INF 401
Problem Set 1 DUE Review Topic 1 Introduce Topic 2

INF 401
Problem Set 2 DUE Review Topic 2 Introduce Topic 3

INF 401

MATERIALS

Online Articles/Posts

Video Lectures, Tutorials, etc.

Encyclopedia Articles

From the publisher: Computer Science Distilled; Computer Science Unleashed
From the Indigo: Computer Science Distilled; Computer Science Unleashed
From the Amazon.CA: Computer Science Distilled; Computer Science Unleashed

 

The "yellow book," Eloquent JavaScript (3rd edition), has a website ( https://eloquentjavascript.net/) where they actually have a fully interactive digital version of it and it's a free, which is to say it's an open resource, but you can pay what you think it's worth to the author - we won't work through this whole book, but it will also serve as a good reference book should you decide to go further with JavaScript (also at Amazon, Indigo, ABE).

Books

required

required

required

THEWORK

Read/View

Review Questions

Problem Sets

Exams

Classroom

Problem Sets

THEWORK

Problem Sets

THEWORK

Course Grade

Component Proportion
Participation      5%
Review Questions* (done/not)    10%
Problem Sets* (10)    20%
Exam 1    10%
Exam 2    10%
Exam 3    20%
Exam 4    30%

* by due date (late = 75% max)

PLATFORMS

View Slide Deck: https://slides.com/djjr/platforms

We'll do CodePen in Class

But if you'd like to get a head start...

You could work through the tutorial used for graduate version of this class.

WHAT?

2020 Course Visualizations

Today

S
D
R
A
D

The Components of
Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "step by step"
  2. Ask: "what are the steps?"
  3. Ask: "what is the order?"

My
Morning
Routine

Get Up

Eat Breakfast

Get Dressed

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "step by step"
  2. Ask: "what are the steps?"
  3. Ask: "what is the order?"

My
Morning
Routine

Get Up

Eat Breakfast

Get Dressed

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "alternatives"
  2. Ask: "when to decide?"
  3. Ask: "what are the options?"
  4. Ask: "what are the criteria?"

Mo, We, or Fr?

Make Protein Shake

Cereal

My
Morning
Routine

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "alternatives"
  2. Ask: "when to decide?"
  3. Ask: "what are the options?"
  4. Ask: "what are the criteria?"

Mo, We, or Fr?

Make Protein Shake

Cereal

My
Morning
Routine

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "repeat until done"
  2. Ask: "have we looked everywhere?"
  3. Ask: "are we getting closer?"
  4. Ask: "when do we stop?"

Eat spoonful of cereal

Bowl Empty?

My
Morning
Routine

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "repeat until done"
  2. Ask: "have we looked everywhere?"
  3. Ask: "are we getting closer?"
  4. Ask: "when do we stop?"

Eat spoonful of cereal

Bowl Empty?

My
Morning
Routine

Eating a bowl of cereal

S
L
O
W

S
L
O
W

S
L
O
W

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "big problems contain smaller problems"
  2. Ask: "can I solve the big problem by solving several little problems?"

Make Coffee

Make
Shake

Clean Blender

Drink, Eat

My
Morning
Routine

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "big problems contain smaller problems"
  2. Ask: "can I solve the big problem by solving several little problems?"

Make Coffee

Make
Shake

Clean Blender

Drink, Eat

My
Morning
Routine

Have breakfast

S
T
E
P

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "zoom in, zoom out, change levels, adjust focus"
  2. Ask: "can I ignore some detail?"
  3. Ask: "can I name a group of steps?"

vs.

Get Ready

Shower

Make bed

Get Dressed

Underwear

Pants/Shirt

Shoes

My
Morning
Routine

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

  1. Think: "zoom in, zoom out, change levels, adjust focus"
  2. Ask: "can I ignore some detail?"
  3. Ask: "can I name a group of steps?"

vs.

Get Ready

Shower

Make bed

Get Dressed

Underwear

Pants/Shirt

Shoes

My
Morning
Routine

 

Computational Reasoning

Sequence

Decisions

Repetition

Abstraction

Decomposition

decomposition breaks big problem into smaller parts

abstraction gathers parts into a higher level concept

vs.

I do and I understand.

Download slide deck from here

What's Next?

Get books

Inspect Quercus site, update profile

Confirm Piazza access

Readings/viewings (~90 m)

Review questions

finis

Outtakes

PSEUDOCODE

Pseudocode

def: pseudocode is a convention for using  everyday language infused with a programing language sensibility for describing how to solve a problem.

pseudocode is used to help you think and to help you communicate your ideas to other humans.

pseudocode is iterative. version 0 is free form, version n is relatively formal (but you get to make up the rules)

Pseudocode

one convention: use indentation to show hierarchical logic 

if hot day
    go to pool
otherwise
    go for bike ride

Pseudocode

To Make Tea for Someone

boil water
obtain tea
obtain cup
ask milk & sugar
if yes milk
add milk
if yes sugar
add sugar
stir
serve
boil water
obtain tea
obtain cup
ask milk & sugar
if yes milk
   add milk
if yes sugar
   add sugar
stir
serve

Pseudocode

Determine if number is even or odd

get number
divide number by 2
record remainder
if remainder = 0
print EVEN
else
print ODD
get number
divide number by 2
record remainder
if remainder = 0
   print EVEN
else
   print ODD

Pseudocode

Yes/No Decisions

Multiple Case Decisions

if expression
   action
else
   other action
case expression
  
value1 : action1
value2 : action2
...
valuen : actionn

otherwise : defaultAction
   other action

Example and Assignment