This post is written by Jim Town, a math (and Make!) teacher at West Sacramento Prep. He began incorporating Arduino into his math classrooms last year and found students engaged and excited, while also learning more himself on how to facilitate a different type of learning. For the 2013-2014 academic year, Jim is working at the National Science Foundation in DC, as an Einstein Distinguished Education Teaching Fellow, in the Division of Research on Learning (DRL) at the Directorate for Education and Human Resources. Essentially, he’ll be advocating for STEM education and helping schools develop engineering programs.

Introducing Arduino into my math classes often resulted in a mess of wires that we — as both teachers and students — need to sort out, but once we overcame the initial struggle of working with hardware, it was smooth sailing.

Precalculus is a class that has many opportunities for creative teaching. Since we are a smaller school, there isn’t enough interest in computer science to justify a full class so I try to embed some of these skills into my math classes to help students become ready for the computer heavy careers that may await them.

One way I’ve found to do this is through Arduino. My students had heard of Arduino because we had a few students working on Arduino projects last year, but had never worked with them. They were excited at the opportunity to “play” in math.

I think it is important to teach meaningful content (as laid out by math standards) but also have the freedom to not worry whether the project teaches the letter of the standard. In this specific project, students learned about exponents and counting in binary, but they probably did not learn the rules for simplifying exponents or other ultra-specific standards that are there. In line with the new Common Core standards, I see math as a way of thinking and not necessarily a set of skills.

In conjunction with the unit on exponents, I challenged students to make a binary counter using either a dip switch or a momentary switch. A dip switch is a row of on/off switches conveniently labeled 1-8; they are like a bunch of little tiny light switches. For these students, when the switch labeled 6 was turned on, they needed to display a 6 in binary on the three LED’s they were given (on-on-off). A momentary switch is a single button that is “on” when pushed and is “off” when not pushed. These students had to keep track of how many times the button was pushed and display that number in binary on the LED’s. That is, if they button was pushed 4 times, the three LED’s would show on-off-off.

At first, this challenge seemed impossible, as they had little-to-no programming experience or familiarity with wired electronics. Also, there was the non-trivial matter of being able to count in binary. We started by slowly and carefully walking through Blink, one of the basic Arduino programs and tutorials. Then I guided them through another Arduino tutorial, Switch, and let them struggle with it until they got it. At the beginning of the second week, several students felt they were ready to attempt the challenge. After a quick lesson on how to count in binary, I let them go.

We spent a large amount of time debugging circuits and code, and I found myself having to soothe frustration. The biggest struggle for the students who chose to use the momentary switch was accounting for the bounces. One group was convinced they had to push down the switch for exactly two seconds in order to get it to work correctly. Eventually they realized what was happening and inserted a delay to help.

Example student code:

Is this math? Well, one could argue that computer science is a branch of mathematics and thus yes. For the more cynical (or as they consider themselves, pure) at heart, I would say algorithmic thinking, problem solving, scientific notation, and converting from base 10 to base 2 are all important math concepts.