This series of posts introduces the notion of an operator as something that changes the state of some machine or device. Often, an operator is invoked at the press of a button. A special case of an operator is one that takes a number, does something and then produces another number. Simple operators can be built from the familiar operations of arithmetic; for example, the “add 2” operator takes a number at its input, adds two to it, and that is the number that comes out.
In addition to being interesting in their own right, operators like “add 2” also provide a useful platform in which to introduce algebraic thinking to students who, up to that point, have been taught to think of “+” as a command to add two numbers right now, as in “5+4= “, where the student is supposed to come up with 9 as their answer. A fair number of algebraic ideas, like associative law and distributive law, as well as the idea of simplifying expressions, can be cast in terms of simple operators chained together. This allows some algebraic ideas to be introduced and examined prior to other algebraic notions such as order of operations, parentheses, variables, leaving out multiplication signs, and more.
So far, we have in this series:
part 1 – we start out by showing a mysterious box with one button and a screen and some behavior that seems to have a pattern to it. We then speculate on possible designs for what is in the box that would produce the observed behavior.
part 2 – we show one possible design for the black box in part 1, and introduce the notion of a finite state machine.
part 3 – we show an entirely different design for the black box in part 1, and play around with hidden state some more.
part 4 – we introduce the role of bluffing in mathematics and introduce a new operation and build our device around that operation.
part 5 – where we show that pressing the “2” button on a calculator, when you are in the middle of entering a number, can also be modeled as an operator, and show that it acts as “multiply by 10, and then add 2”.
part 6 – in which we transition to operators that work on single numbers, and chain operators together – connecting the output of one to the input of the next one. A first hint that kids can do this, and think in terms of this, even if they don’t understand “x”.
part 7 – a report on real kids thinking through chained operations and discovering the distributive property for themselves in an unusual setting.
part 8 – an example of systematically shortening a long train of operators (“simplifying”) and reducing it to no more than two operators, one multiplication and one addition. The short train behaves the same way as the long train of operators. Does this always work?
part 9 – a look at operators that seem to do nothing, and an initial look at pairs of operators that undo the effect of the other.
part 10 – a look at addition operators that buddy up with subtraction operators to undo each other, and multiplication operators that buddy up with division operators to undo each other. Cyclical trains and the symmetry of inverses.
part 11 – in which we see how to undo an entire train of operators if we know how to undo each of the cars of the train. We suspect a connection with solving equations.
part 12 – in which we expand on undoing trains of operators and make explicit the connection with solving equations. We introduce a whole new group of operators and wonder how to undo each of those.
part 13 – on the importance of “undo” pairs of operators, and how it is sometimes well worth it to bluff and introduce a fancy name for an undo operator about which we know essentially nothing. People will be impressed regardless!
part 14 – in which we get explicit about functions, pulling together much of what we’ve already seen in earlier posts.
part 15 – in which we go deeper into what makes a function a function. We also introduce properties.
part 16 – in which we talk more about functions and properties, and look at some simple functions that do not have an associated “undo” function.
part 17 – in which we get specific about the four-function calculator that we want to model, and start the general outlines of a state machine model for that calculator. Each key press invokes an operator on the state, and the output of the operator is the new state of the machine.
part 18 – in which we introduce various operators that select and update components of the machine’s state, and show their application.
part 19 – in which we introduce visual conventions for marking the various inputs of operators (like subtraction) where the inputs aren’t interchangeable.
part 20 – in which we introduce a look-up table operator and show its general and specific usefulness.
part 21 – in which we introduce a selection operator that looks very different from the look-up table but is functionally equivalent to it. We then apply this operator to help formulate the design of a four-function calculator.
part 22 – in which we show an entire design of a simple four-function calculator as a state machine, where pressing each key invokes an operator that operates on the state of the machine. Each different type of operator is shown.