### Computational Thinking Fall 2018

FORMAT | |
DEBUG |

CALL get-syllabus-list-session (ct,ct_think_slow,no)

CALL get-the-session2(ct,ct_think_slow,no)

## Think Slow(ly)

Can you sort a hand of playing cards? Can you tell me how to sort a hand of playing cards? Can you reverse engineer a MadLibs template? We'll explore both of these and learn a thing or two about algorithms and abstraction. Naive O(n).

CALL get-the-slide-deck-small2(ct, ct_think_slow,no)

CALL get-the-outcomes( ct,ct_think_slow,no)

CALL get-the-problems(ct_think_slow,no)

CALL get-the-agenda(ct_think_slow,no)

CALL get-the-homework(ct_think_slow,no)

CALL get-the-see-alsos(ct_think_slow,no)

CALL get-syllabus-list-session (ct,ct_flow_dec_mod,no)

CALL get-the-session2(ct,ct_flow_dec_mod,no)

## Flow, Decisions, and Modularity

In which we learn the visual grammar of flow charts, black boxes, stepwise refinement, and modularity.
Visualizing action/process. Modularity. Dependency. Gannt charts too? Finish with classification flow charts and have this lead to BINARY and LOGIC?

CALL get-the-slide-deck-small2(ct, ct_flow_dec_mod,no)

CALL get-the-outcomes( ct,ct_flow_dec_mod,no)

CALL get-the-problems(ct_flow_dec_mod,no)

CALL get-the-agenda(ct_flow_dec_mod,no)

CALL get-the-homework(ct_flow_dec_mod,no)

CALL get-the-see-alsos(ct_flow_dec_mod,no)

CALL get-syllabus-list-session (ct,ct_countingNprobability,no)

CALL get-the-session2(ct,ct_countingNprobability,no)

## Counting and Probability

How many and how likely? Another basic tool in our repertoire will be the ability to count things systematically. In which we make our way from Babylonian to Boolean and the way different ways of counting yield different ways of reasoning.

CALL get-the-slide-deck-small2(ct, ct_countingNprobability,no)

CALL get-the-outcomes( ct,ct_countingNprobability,no)

CALL get-the-problems(ct_countingNprobability,no)

CALL get-the-agenda(ct_countingNprobability,no)

CALL get-the-homework(ct_countingNprobability,no)

CALL get-the-see-alsos(ct_countingNprobability,no)

CALL get-syllabus-list-session (ct,ct_infojigs,no)

CALL get-the-session2(ct,ct_infojigs,no)

## Information Jigs

Process and flow is only half of our tactical tool kit. A jig is a type of custom-made tool or device that is used to control the location and/or motion of parts or other tools. A jig's purpose is to provide repeatability, accuracy, and interchangeability. The other half of our computational thinking arsenal is creative ways to structure information so that it is easier to operate on. In this workshop and the next we will meet a whole menagerie of useful "data structures." We will see that having your information in the right form is well over half the battle. Maybe big data? digital humanities? Names, nomenclature. Structures. Classes. Info hiding. Encapsulation.

CALL get-the-slide-deck-small2(ct, ct_infojigs,no)

CALL get-the-outcomes( ct,ct_infojigs,no)

CALL get-the-problems(ct_infojigs,no)

CALL get-the-agenda(ct_infojigs,no)

CALL get-the-homework(ct_infojigs,no)

CALL get-the-see-alsos(ct_infojigs,no)

CALL get-syllabus-list-session (ct,ct_api_edl,no)

CALL get-the-session2(ct,ct_api_edl,no)

## APIs in Everyday Life

An Application Program Interface is a well-defined set of tools for getting a software resource to do things for you. In this module we will explore other things in life that function analogously as a way of understanding how APIs work and the lessons for good design of interfaces that can flow in both directions.

CALL get-the-slide-deck-small2(ct, ct_api_edl,no)

CALL get-the-outcomes( ct,ct_api_edl,no)

CALL get-the-problems(ct_api_edl,no)

CALL get-the-agenda(ct_api_edl,no)

CALL get-the-homework(ct_api_edl,no)

CALL get-the-see-alsos(ct_api_edl,no)

CALL get-syllabus-list-session (ct,ct_solvingwithiteration,no)

CALL get-the-session2(ct,ct_solvingwithiteration,no)

## Solving Problems with Iteration (aka Pattern Generation)

An "iterative" approach to problem solution can mean two things. The first is problem solving based on gradual improvements to an initial guess at a solution. The second is problem solving by working over all the possible cases and combinations of inputs. In this module we will explore computational thinking in these two iterative modes. In which we encounter the affinity between geometric tile patterns, knitting, weaving, and music. For, While, Until. Encoding.

CALL get-the-slide-deck-small2(ct, ct_solvingwithiteration,no)

CALL get-the-outcomes( ct,ct_solvingwithiteration,no)

CALL get-the-problems(ct_solvingwithiteration,no)

CALL get-the-agenda(ct_solvingwithiteration,no)

CALL get-the-homework(ct_solvingwithiteration,no)

CALL get-the-see-alsos(ct_solvingwithiteration,no)

CALL get-syllabus-list-session (ct,ct_pat_rec,no)

CALL get-the-session2(ct,ct_pat_rec,no)

## Recognizing Patterns

In which we learn how the skills of a power finder&replacer (and expert data cleaner) relate to everything else, all about regular expressions, finite state machines, lexical analyzers, and text parsers and maybe even data compression too.

CALL get-the-slide-deck-small2(ct, ct_pat_rec,no)

CALL get-the-outcomes( ct,ct_pat_rec,no)

CALL get-the-problems(ct_pat_rec,no)

CALL get-the-agenda(ct_pat_rec,no)

CALL get-the-homework(ct_pat_rec,no)

CALL get-the-see-alsos(ct_pat_rec,no)

CALL get-syllabus-list-session (ct,ct_comp_vis,no)

CALL get-the-session2(ct,ct_comp_vis,no)

## Seeing Machines

We will make our way from graphs and networks up to constructing a neural network that can see in a spreadsheet (or maybe in an agent modeling platform like Netlogo or maybe we'll build a physical one in the the classroom).

CALL get-the-slide-deck-small2(ct, ct_comp_vis,no)

CALL get-the-outcomes( ct,ct_comp_vis,no)

CALL get-the-problems(ct_comp_vis,no)

CALL get-the-agenda(ct_comp_vis,no)

CALL get-the-homework(ct_comp_vis,no)

CALL get-the-see-alsos(ct_comp_vis,no)

CALL get-syllabus-list-session (ct,ct_auto_cont,no)

CALL get-the-session2(ct,ct_auto_cont,no)

## Automation and Control

Control engineering is about designing systems with desired behaviors within uncontrolled environments. In which we learn about feedback, bureaucracy, rules and regulations, and where the word "governor" comes from. Sensors. Feedback. Everyday machines. Internet of things. Systems. Introduce stopping problem?

CALL get-the-slide-deck-small2(ct, ct_auto_cont,no)

CALL get-the-outcomes( ct,ct_auto_cont,no)

CALL get-the-problems(ct_auto_cont,no)

CALL get-the-agenda(ct_auto_cont,no)

CALL get-the-homework(ct_auto_cont,no)

CALL get-the-see-alsos(ct_auto_cont,no)

CALL get-syllabus-list-session (ct,ct_block,no)

CALL get-the-session2(ct,ct_block,no)

## Blockchain

What's the fuss about blockchain? Can I understand enough to become a crytpo-currency billionaire? (no) Can I understand it enough to be the smartest person at the dinner party? (yes). Algorithms, pointers, hash functions, cryptography

CALL get-the-slide-deck-small2(ct, ct_block,no)

CALL get-the-outcomes( ct,ct_block,no)

CALL get-the-problems(ct_block,no)

CALL get-the-agenda(ct_block,no)

CALL get-the-homework(ct_block,no)

CALL get-the-see-alsos(ct_block,no)

CALL get-syllabus-list-session (ct,ct_robots_ai,no)

CALL get-the-session2(ct,ct_robots_ai,no)

## Robots and AI

You can learn a lot by building something, we will "build" a robot. In class. And maybe have a guest lecturer too.

CALL get-the-slide-deck-small2(ct, ct_robots_ai,no)

CALL get-the-outcomes( ct,ct_robots_ai,no)

CALL get-the-problems(ct_robots_ai,no)

CALL get-the-agenda(ct_robots_ai,no)

CALL get-the-homework(ct_robots_ai,no)

CALL get-the-see-alsos(ct_robots_ai,no)

CALL get-syllabus-list-session (ct,ct_wrapup,no)

CALL get-the-session2(ct,ct_wrapup,no)

## Wrap Up

Let's review where we've been and where we can go from here.

CALL get-the-slide-deck-small2(ct, ct_wrapup,no)

CALL get-the-outcomes( ct,ct_wrapup,no)