During our AES Computation Thinking Workshops with teachers, we’ve dissected the art of coding, debugging, compiling and the TMI design cycle to create efficient, thoughtful projects. We also ran through a code-review as a way to collaborate and share various ways to accomplish goals. This conversation allowed for even deeper refinement of thinking.

## First Things First – Breaking Apart How Things Work

We spent quite a bit of time offline discussing the Parts/Process/Complexity protocol to understand how a calculator works, so we can deconstruct that process, reverse engineer, and build our own projects with this intentional understanding of computational thinking. We specifically spent time thinking together about how systems contain sub-systems and the complexity communiting between areas in an ecosystem. This led to other interesting birdwalks, such as how different sorting algorithms solve different types of problems in creative, binary, ways.

For this example, we approached how a teacher will allow his students to create their own calculator to uncover a deeper understanding of additive and subtractive procedures. We broke down the basics of how a calculator works as follows:

### Parts

- Input = buttons and screen
- Storing of data
- Computation = doing the math
- Output = displaying results

**Process**

- Gathering and storing inputs
- Programming to do the math
- Displaying the final results

**Complexity**

- Storing variables
- Scratch/Python syntax to do the calculation
- Display of final computation

Now that this is understood, we can begin to program computationally breaking down how objects such as calculators and street lights to their parts, processes, and complexity and visualize this “magic” as something we can recreate, improve, fix, and customize.

### Building Our Own Calculator

#### Scratch Adding Program in 8 Lines of Code

- Step 1 and 2 – Create variables to hold the data input
- Step 3 – Create a prompt to store the first variable
- Step 4 – Store first number as the first variable
- Step 5 – Create a prompt to store the second variable
- Step 6 – Store first number as the second variable
- Step 7 – Compute sum of first and second variable
- Step 8 – Show results
- Step 9 – “Meow” (just for fun)

### Next Step: Python Adding Program in 4 Lines of Code

Scratch gives a visual interface to Python programming. This makes the transition from visual coding to text coding smooth (and more efficient).

- Line 2 and 3 – Create variables to store inputs
- Line 5 – Compute the sum of variable 1 and variable 2
- Line 6 – Display sum output

Using this process, students are able to understand how common computers in their world actually work, step-by-step and are able to recreate this process in parts.

This develops a fundamental understanding that most of our world is custom, fixable, and upgradable.

This also instills the life-long self-efficacy to not take our modern devices for granted and to always be thinking “behind the scenes”.