Guess-Check-Generalize and the Scrubbing Calculator

Several other blogs have been talking about Bret Victor’s Kill Math website, including its Scrubbing Calculator.  I’d like to talk about how the Scrubbing Calculator is both very similar to and very different from an approach to solving word problems we call “Guess-Check-Generalize”.  Here’s a graphic from a sample problem solved Scrubbingly.

The challenge is to find the height of each bar, given the information about other heights.  When I first taught Algebra 1, my approach to this would be to get students to “translate” the problem into algebra, trying to get them to write an equation that would be true for the right height.  And the results were a mixed bag, for a lot of reasons that might be good for a different post.  I think there’s something inherently challenging about trying to write a fully symbolic statement immediately from a problem situation.

The concept of guess-check-generalize starts by changing the nature of the problem.  The question to start with changes:

from What is the correct bar height? …

to Is 100 the correct bar height?

Here, 100 could have been any number at all, it’s a total guess.  (Some teachers using this method ask students to write down their first guess before even presenting the problem, since students may be afraid to guess incorrectly.)

Now we see if the guess is right.  Up until now, I agree completely with the philosophy of the Scrubbing Calculator: make a guess at the bar height, then see if it’s right.  This is where things get interesting, because there’s more than one way to check the guess.  The most conventional way is to add up the heights on the right side, and a student might do this:

60 + 100 + 20 + 100 + 20 + 100 + 20 + 100 + 20 + 100 + 20 + 100 + 20 + 100 + 20 + 100 + 20 + 100 + 140 = nope

It doesn’t actually matter what that equals, as long as it doesn’t equal 768.  Guess-check-generalize is about determining a process you can use to check any guess; then, the process you’ve described becomes an equation to solve.  And the process can evolve from one guess to another, as students realize they’ve used the same number 8 times or that this thing is twice that thing.

So 100 was wrong; take a second guess.  It doesn’t have to be a better guess, because you’re not trying to nail the numeric answer, you’re trying to nail the process of checking a guess.  Let’s guess 36.  Checking this guess a student might notice they could combine some terms from before:

60 + (9 \cdot 36) + (8 \cdot 20) + 140 = 684, \text{nope}

No more guessing.  The third guess is h, a variable.  (Students may need more guesses, especially at first; eventually some only need one or zero guesses.)  Take all the places the guess was found and replace them with the variable, noting that the correct guess yields 768:

60 + (9 \cdot h) + (8 \cdot 20) + 140 = 768

Solving that equation and bringing the answer back into context are still issues, but I always found the largest difficulty with the dreaded “word problem” is an inability to take the situation and make a mathematical statement about it.  When almost every real mathematical situation an adult encounters is a “word problem”, this is a major issue that needs to be addressed.

Here’s why I think guess-check-generalize is a good way of dealing with word problems.

  • The method is general in nature.  The method presented here works equally well for linear and nonlinear situations, for problems with a variable on each side of the equation, for rates, coin values, painting houses, counting beans, whatever.  This is a general-purpose tool that is useful over many years, including some surprising topics like generating the equations of lines and circles.  (More on this some other time.)
  • This is what people do with problems.  When a problem is new or overly complicated, picking a few cases and following them through leads to an understanding of what happens in general.  Traditional word problem methods expect students to have the generalization at the ready, and it just doesn’t work that way in reality.  The concept of generalizing from repeated example is a fundamental one that all students should learn, not just those heading into STEM careers.
  • Students have a simple place to start from.  By asking students to guess at the answer, the difficulty level of word problems can be reduced by 2 or 3 grade levels immediately.  Students with language difficulty can learn what is happening by calculating with numbers, connecting the new language to the calculations they know, then advancing to symbols when appropriate.
  • There are no black boxes.  Students construct equations and can understand where they come from.  Multiple equations with the same answer can be found from different techniques used on the same problem, leading to good discussions about the basic moves of algebra and how different equations and formulas are related.
  • Connections between arithmetic and algebra are reinforced.  Bret Victor says this: “We are accustomed to assuming that variables must be symbols. But this isn’t true — a variable is simply a number that varies.”  I’d like this to change.  Too many students only see variables as symbols for manipulation, and not as numbers that vary.  Students make mistakes with variables they would never make with numbers.  When this happens, it is because they don’t see that the symbol represents a number.  Since arithmetic is at the heart of guess-check-generalize, students are asked to solidify their number skill and sense.  Students begin to guess “nice” numbers, like a multiple of 3 when they see that dividing by 3 will be part of the process.

It is on this last point that I disagree deeply with the philosophy of the Scrubbing Calculator; students don’t really do any of the calculating.  In the end, a student might see that the answer produced by Scrubbing works, but if there is more than one answer, there’s no way for a student to discern this.  If the problem changes slightly from its original form (say, to a 1024-high screen), the Scrubbing solution method is to start from scratch, which doesn’t help students generalize toward functions and formulas (in this case, a relationship between the screen height and the bar height).

What if the correct answer to the equation is \sqrt 2 or even \frac 2 3?  I don’t see how the Scrubbing Calculator could get these answers.  I agree that too many students don’t see the real meaning of a variable, but this is no reason to ditch symbolic algebra, this is a reason to make the connections between arithmetic and algebra as strong as possible, as often as possible.

The Scrubbing Calculator’s method is an opportunity for students to make deep connections between arithmetic and algebra, between real problems and symbolic algebra.  I’m disappointed that its intended purpose is to remove symbolic algebra altogether, because it could be pretty cool.  What do you think?

For homework, solve this problem using guess-check-generalize or come up with a better one.  No scrubbing, please!

Nancy takes a long car trip from Boston.  In one direction she drives at an average speed of 60 miles per hour, and in the other direction she drives at an average speed of 50 miles per hour.  She’s in the car a total of 38 hours for the round trip.  How far from Boston was her destination?  (Bonus: what city did she drive to?)

Induction through Failure

I was inspired by a recent post from Ben Blum-Smith about induction to talk about an approach to induction I learned from Al Cuoco.  I don’t know its origins, but it really does a nice job of dealing with the issue Ben brings up: you assume you’re right then prove it.  But if you’re already right, why prove it?

Our curriculum (CME Project Precalculus Investigation 4A, for those playing at home) ties induction to the process of finding closed-form rules to match recursive definitions, such as this one:

f(n) = f(n-1) + 5, f(0) = 3

What is f(23)?  All the formula says is that f(23) = f(22) + 5, so that’s no good… except that it is, since now you do the same thing to f(22), eventually working your way back to the “base case”.  This actually works out pretty nicely:

f(23) = f(22) + 5

= [f(21) + 5] + 5

= f(20) + 5 + 5 + 5


= f(0) + 5 + 5 + \cdots + 5

But how many fives?  Why is chasing it all the way back to f(0) a good idea?  What would change with f(117)? with f(n)?  This works to find closed-form rules for recursions surprisingly often.

Another way to find f(23) is to count off outputs: f(1), f(2), \dots until you reach 23.  More likely, you’ll figure out a pattern to the outputs before you get there… 3, 8, 13, 18…

So now you’ve got these two rules:

f(n) = f(n-1) + 5, f(0) = 3 \qquad \text{and} \qquad g(n) = 5n + 3

If I want to prove these two rules will always agree (whenever f is defined, anyway) it’s time for induction.  Before that, we really want to be sure the rules agree.  This is where technology comes in: using Excel or the TI-Nspire or several other tools, these functions can be entered then compared.  (For the Nspire, see page 3 of this document for an example.)  Now use the technology to compare f(23) and g(23) … f(500) and g(500) … f(100000) and g(100000).

No matter what piece of technology you use, at some point it is going to stop saying that these two functions agree.  (On Nspire hardware, this happens somewhere around 100, but depends on the device’s memory.)  Say for example that the technology agrees that f(105) = g(105) but f(106) is undefined.  How could you show that f(106) = g(106) anyway?

By doing this, the “induction step” process is one that actually happens with a numeric value.  So let’s work this one out… evaluating f(106) fails, but we know from its definition that

f(106) = f(105) + 5

Oh and we also know that f(105) = g(105), because the functions agreed up to that point.  So:

f(106) = g(105) + 5

= (5 \cdot 105 + 3) + 5

= 5 \cdot 106 + 3

= g(106)

The induction step happens naturally, based on the failure of the technology, and based on a numeric example.  (Now, try to show that f(107) = g(107)…)

The steps taken above also evolve quickly into a general argument for f(n) simply by using n instead of 106, and noting that 105 should be (n-1).

f(n) = f(n-1) + 5

= g(n-1) + 5

= (5(n-1) + 3) + 5

= 5n + 3

= g(n)

And, boom goes the dynamite.

I feel this method does a nice job of dealing with the “proving what you know to be true” issue that surrounds induction.  This method can also help with some of the issues around base cases, because it encourages the checking of several cases before trying to complete an inductive proof.  Lastly, the extension from the numeric calculation of f(106) to the algebraic calculation of f(n) lines up well with one of Common Core’s mathematical practices, “Look for and express regularity in repeated reasoning“.  After all, that’s what induction is all about…

Deriving the Quadratic Formula (the easy way)

In Bowen’s post from April 25, he showed a great method for factoring non-monic quadratics. Using that same method, you can derive the quadratic formula pretty cleanly, without lots of fractions, rationalizations, and the like.

The goal is to find a solution to the generic quadratic equation:

ax^2 + bx + c = 0

We can’t factor using sums and products, so we resort to completing the square. The equation would be much easier to work with if it were monic. We could divide through by a, but then there’s lots of fractions to keep track of. Instead, let’s multiply both sides by a and make it a quadratic in ax:

a^2x^2 + abx + ac = 0

Hmmm. Again, things would be so much easier to complete the square if that middle term were even. We can multiply both sides by 2 to do that, but then the first term isn’t a perfect square. Fine, let’s multiply both sides by 4 then:

4a^2x^2 + 4abx + 4ac = 0

Now, just rewrite that a little bit:

(2ax)^2 + 2b(2ax) + 4ac = 0

and now we can put our fingers over 2ax and see this as a simpler monic:

F^2 + 2bF + 4ac = 0

And now, complete the square. First, let’s put that constant on the other side:

F^2 + 2bF = -4ac

To get a complete square on the left side, we need a b^2, so add it to each side:

F^2 + 2bF + b^2 = b^2 - 4ac

The left side is now a perfect square… and the right side looks familiar… Let’s factor the left side:

(F + b)^2 = b^2 - 4ac

To solve for F, take the square root of each side:

F + b = \pm\sqrt{b^2 - 4ac}

and subtract b from each side:

F = - b \pm \sqrt{b^2 - 4ac}

What was F again? Lift that finger…oh, yeah, 2ax:

2ax = - b \pm \sqrt{b^2 - 4ac}

So finish this off by dividing each side by 2a:

x = \dfrac{- b \pm \sqrt{b^2 - 4ac}}{2a}

And there you have it… the quadratic formula, with no fractions until the final step.  Enjoy!

Counting with Polynomials

This is to expand on a recent comment I made to “Factoring non-monic quadratics.”

We hear a lot these days about “modeling with mathematics.”  One aspect of this is the use of formal calculations as a modeling device.  An example, pretty common in many high school programs, is the use of the binomial theorem to compute combinations.  So, you can use (t+h)^{10} to compute the number of ways that you can get, say, 4 heads and 6 tails when you toss a fair coins 10 times.   Another example is when you use powers of a matrix to get Fibonacci numbers.  The calculations not only give you answers, they let you derive properties of the phenomena they model.

One of my favorite uses of formal calculations comes from a project that my daughter gave to her sixth grade class some year ago: compute the most likely sum (and the distribution of sums) when several dice are thrown.  For two dice, the problem is fairly standard, and most kids make a 2 by 2 table of all possibilities.  For three dice, her students invented all kinds of clever representations, some very algebraic — not in notation, but in spirit.  This triggered an idea that has become a recurring theme in our high school program.  It goes like this:

If you use expansion boxes to multiply polynomials, you see that the expansion of


contains exactly the same numbers as the 2-dimensional table that records the possible outcomes when you roll two dice.  In other words, the number of ways of rolling a 5 when you throw two dice is the coefficient of x^5 in


It’s the number of ways you can make 5 as a sum of two integers, each between 1 and 6.  The same reasoning shows that the coefficient of x^k in


gives the number of ways you can roll a k when m dice are thrown.

From here, you can use the structure of the expression (x+x^2+x^3+x^4+x^5+x^6)^m
to get results about the distribution of sums.  For example:

  • There are 6^m possible sums, because this is the sum of the coefficients, and the sum of the coefficients comes from putting x=1
  • There are as many even sums as odd sums (replace x by -1).
  • The distribution of sums on three dice whose faces are labeled \{0, 2, 3, 4, 5, 5\}, \{0, 1, 1, 2, 2, 2\}, \text{and} \{1, 2, 3, 6, 6, 6\} can be read off from the coefficients of the product of three different polynomials.
  • Various factorizations of (x+x^2+x^3+x^4+x^5+x^6)^m give you different information about the distributions.  One interesting thing to try is to rearrange the factors of (x+x^2+x^3+x^4+x^5+x^6)^2 to try and produce two dice, different from the standard ones, whose distribution is the same as the standard distribution.  (This may or may not be possible, we’re not telling.)

All this is a preview, accessible to high school students, of the incredibly useful field of algebraic combinatorics and generating functions.


Factoring Non-Monic Quadratics

Regardless of the course, non-monic factoring was always a thorny issue in my teaching.  My students never seemed to get “good” at it, even though they seemed alright at monic factoring (“monic” just means the first coefficient is 1, like x^2 + 14x + 48).  This topic made me really question why I was teaching it, for several reasons:

  • The very next thing was the quadratic formula, and for most of the things non-monic factoring could be useful for, I felt the quadratic formula would be just as good.
  • I couldn’t find many places later in my curriculum where non-monic factoring was being used, so it seemed like a topic taught for a single purpose.
  • The methods I saw for factoring non-monic quadratics had little or nothing to do with the methods for factoring monic quadratics.
  • The method I learned and first taught amounted to trial-and-error.

And maybe you know this method too: to factor 6x^2 + 31x + 35, you write down all the factors of 6, separately write down all the factors of 35, and start making pairs.  Eventually you either find the pair that works, or you run out of pairs:

(x+1)(6x + 35) = 6x^2 + 41x + 35, nope

(x+5)(6x + 7) = 6x^2 + 37x + 35, nope

(x+7)(6x + 5) = 6x^2 + 47x + 35, nope, keep trying…

And I was polite in picking 6 and 35 here, two numbers with only two prime factors each!  I feel this method is a mathematical nightmare.  Keep testing, keep checking.  And don’t give the ones that aren’t factorable, since the only way to know it’s unfactorable is to test all the possibilities, and that’s just mean.

A year or two later, I learned and taught the “key number method”: multiply the coefficients of “a” and “c” (6 \cdot 35 = 210).  Then you break up the middle term (31x) into two pieces whose coefficients multiply to 210:

6x^2 + 31x + 35 = 6x^2 + 10x + 21x + 35

Then “group” in pairs and a miracle occurs:

(6x^2 + 10x) + (21x + 35) = 2x(3x + 5) + 7(3x + 5)

= (3x + 5)(2x + 7)

This worked a lot better for my students, by which I mean they got correct answers faster and with greater accuracy.  But the core of this method is the “miracle” that splitting the 31x in this exact, specific way will do great things.  It works because it works.  (There are better explanations, but my students just memorized what to do.)

One advantage of the key number method is it can be applied to monics, too, visualizing the “sum and product” concept:

x^2 + 14x + 48 = x^2 + 6x + 8x + 48

= x(x+6) + 8(x+6)

= (x+6)(x+8)

But this generally comes after the fact: I didn’t teach students to factor monics in this way.

While working on CME Project, I learned (through Al Cuoco and Jeremy Kahan, a field test teacher) about a “scaling” method that uses monic factoring as the core of non-monic factoring.  It feels a lot more natural, cements monic factoring, and fits tightly with Mathematical Practice #7, “Look for and make use of structure.”  It starts with specific non-monics like this one:

25x^2 + 70x + 48

Try factoring that for a second using either of the methods presented above.  It’s messy!  But, would you believe this is actually a monic quadratic?  It’s just got a different variable: 5x.

25x^2 + 70x + 48 = (5x)^2 + 14(5x) + 48

Now cover your finger over each 5x: it reads finger^2 + 14 \cdot finger + 48.  Doesn’t matter what’s under the finger: it factors!

F^2 + 14F + 48 = (F+6)(F+8)

And you’re done when you lift your finger, remembering that F = 5x.  In teaching, I used capital letters for these substitutions, to remind students that there was more work to be done later.


How fast was that?  And understandable, too!  The core concept of a replacement of variable (the book calls this “chunking”) plays forward deeply into later topics and courses: when I say I used capital letters for substitutions, I generally was doing that with Precalculus or Calculus students, but the concept can be seen much, much earlier.  By using it frequently, it becomes a tool students actively look to use when they see something complicated.

But I fudged the example: it’s got 25x^2.  How about that original one, 6x^2 + 31x + 35?  It doesn’t have a perfect square term, but … wishful thinking … we can make one by multiplying through by 6, then paying it back later.

6(6x^2 + 31x + 35) = (6x)^2 + 31(6x) + 210

\mathbf{= F^2 + 31F + 210}

\mathbf{= (F+10)(F+21)}

Note that this method includes the step that was part of the “key number method”: the 210 is produced by multiplying the coefficients of “a” and “c”, but this time there is a more mathematical reason for doing so.  And the payoff is the same, since we then need two numbers that add to 31 and multiply to 210 — but we use the monic factoring method to perform that step.  This cements monic factoring skills, as it becomes part of the process in the later topic.  And now the miracle, as we have common factors in the two right-side terms:

6(6x^2 + 31x + 35) = (6x+10)(6x+21)

= 2(3x+5) \cdot 3(2x + 7)

= 6(3x+5)(2x+7)

And now you zap the 6 from each side and you’re done:

6x^2 + 31x + 35 = (3x+5)(2x+7)

It was shocking to me that this method works at all, and especially shocking that it always works: any factorable non-monic quadratic can be dealt with using this method.  And variable substitution is a natural method used in other places: completing the square is a variable replacement using \left(x - \frac b 2\right) as the variable … x^4 - 1 is a difference of squares … circles and ellipses all relate to the unit circle x^2 + y^2 = 1… trigonometric equations are just regular equations when you cover your hand over the “\sin x” part … a z-score is a linear substitution … and others.

The biggest benefit of presenting substitution methods as early as possible is that students learn a general-purpose tool they can apply repeatedly across grades and topics.  I also think it makes quadratic factoring easier and faster to teach.  What do you think?

Next: how this method can be used to develop the quadratic formula…

(If you know how to better display equations easily in places like this, let me know.  The LaTeX equations look pretty bad in the vertical alignment category, and I had to force a white background on each equation.  As long as it’s readable, I guess, but somehow I think it could be better.  Thanks to Mark Betnel for the pointer to the LaTeX commands available.)