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:


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!"

Tuesday, March 4, 2014


Last night, I had the privilege of attending the award banquet for NCWIT aspirations in computing award winners.  24 high school girls were awarded at ASU in the Memorial Union Ballroom for their accomplishments and aspirations to change the world through computing.  Many have been active at their schools involved in engineering clubs, robotics, and computing classes and aspire to lead a tech company, find a  cure for pancreatic cancer, and study engineering management.  ASU faculty and NCWIT representatives were there to encourage the girls to pursue computer science no matter what they eventually decide to do.  I was there with Daisy, a student I taught when she was in 5th grade.  She was on the first robotics team I started and continues to compete at the high school level.  I continue to be inspired by her and many others to bring computing to the next generation of girls.

One of the speeches by ASU faculty highlighted the fact that many of the early pioneers and current technology leaders were and are women.  Ada Lovelace, Grace Hopper, and many more.  The student awardees were encouraged to continue the line of women in computer science.

Here is an inspiring video on how girls break through stereotypes in computer science.