## Friday, March 7, 2014

### Algorithms Here, Algorithms there...

Math this week has taken a computational thinking (CT) twist to it.  We started a series of topics in math that I thought would be powerful if we could apply CT skills to all of these scenarios.  We started with multiplication of fractions.  I had students set up an array of 12 like this:

xxxx
xxxx
xxxx

I had them then circle to show 2/3 of 12 and record the answer.  We connected this to Math Practices - model with mathematics.  I had them then extend to show 4/6 of or x 12, 3/6 x 12, 5/6 x 12, 1/6 x 12, 1/4 x 12, 3/4 x 12, 1/3 x 12 with the corresponding answers.  Based on this list of equations, the students were to test out various algorithms until they found a 'set of directions' that would work all the time when multiplying fractions.  This is Math Practice 8:  Look for and express regularity in repeated reasoning and 7:  Look for and make use of structure.

The interesting thing is that as soon as I gave the directions for this task, the classroom transformed into an environment very similar to when we are debugging and coding.  Students were working together, discussing various options, testing out possible solutions and finally selecting an algorithm they believed would work.  Many had to go back to redraft their algorithm to either make the language more specific or to make it more universal.  This was a challenging task and definitely required perseverance (Math Practice 1 - Make sense of problems and persevere in solving them), but so worthwhile in so many ways.  One big takeaway is that the math classroom suddenly takes on more of a 'lab' and exploring environment where the 'right' answer does not come right away and does not come in only one form.  There are multiple ways to express the thinking and students learned it is okay to make "mistakes" because these are what actually help them reach the goal.

One student example:
"My rule is that you divide the denominator by the whole number (12), then you multiply the quotient by the numerator to get the product.  For example, 5/6 x 12 = 12 divided by 6 = 2, then 2 x5 = 10 and when you look, you see that I got 10!"

I then had the students compare searching for the 'just right' algorithm in math and in coding...

"When you make an algorithm for math, it is similar to coding algorithms.  For example, when you make an algorithm for coding, you need to test it out and make sure it works.  Same with math.  You need to test your algorithm to make sure it works.  Also, when your algorithm is not right, you need to keep trying to make sure it works for everything...[and] they're both fun!"