Computational Thinking - Why do we need to do this?

I've been pushing programming tasks on my Algebra 2 class. Pushing is the operative word.

Specifically, I've given them tasks that require them to use programs written in Python to do something related to what we are learning. Previously I showed them a program I wrote for a homework assignment as part of my work for Programming a Robotic Car , which went just fine for what it was: a short activity. I've also given them a few tasks during previous classes asking them to adjust a program I had written. IN one case this was to calculate a solution to a linear system; in another to evaluate the quadratic formula.

What I admit I did a bad job of, however, of making it clear why we would even want to do so. I think I erred on the side of them seeing how great it was that the computer could do this, which is silly considering I'm also pushing applications like Wolfram Alpha that do much more than my programs, and in a much more eye-catching way. I imagine it's sort of like showing my students a typewriter that can post on twitter and insisting they find it cool because such a thing exists. The power of programming is in making the computer do work that makes sense for a computer to do. The power of showing programming to students is to both demonstrate how a computer can do this type of work for them, and then empower the students to apply this knowledge on their own.

After reading a couple posts by David Wees on programming and mathematical thinking,  I realized that I was doing things backwards. I needed to establish a reason for doing and teaching computational thinking. I was going to have some students out for athletics last week, and those tend to be the days when I experiment. I mentioned in the previous class with this group that I was planning to do a lesson with Python, and the reaction was instant and violently vocal. Those that were going to be out were thrilled. The others looked about as excited as if they learned that lunch for the following week would be nothing but spinach.

I designed the lesson knowing that if there was going to be any Python at all, it would need to be a task that justified itself quickly, clearly, and with as little trouble as possible.

The topic of the day was composition of functions. The warm up activity was this:

  • Suppose f(x) = x^2. What is f(f(2))?
  • This should also work for complex numbers. What is f(f(1 + i))?

What was neat was that a couple of the students were stuck on the first question playing around with it. I didn't have to ask a student to perform the composition three, then four, then five times to its own value - they did it on their own to postpone having to deal with the complex numbers. Not a problem. They got the point that they could do this, but that it was tedious. That was phase 1.

This came next:


The program they used can be found at .

They quickly figured out how to use the program to run a whole bunch of times. Some found that they weren't sure if an initial value escaped or not because the value was close to 1 or -1, so they figured out that they could change the number of iterations in the program to give them a better indication. Others realized they were looking at scientific notation and that they needed to review that that meant. 

We talked about why the computer was the way to go for this, and then related it to the second warm up problem. Could it be possible to use the computer to do this for the more tedious task of managing complex numbers? Enter my second program at
The students used the second program to determine whether these points diverged/converged (I occasionally slipped these words in with hand motions to link them to escaping or being trapped) and found the concept pretty straight forward, as it had been with the points on the number line. I continued to ask them how they could do this manually using pencil and paper, and was met with groans - the computer clearly was the more logical tool to use for this. (Yes!)
My final task for them was simple: plot the points that are trapped. I gave them this:
I said I wanted them to color in any of the squares with bottom left hand corners that represented values that converged. That's a lot of grid squares, but that was kind of the point. There were nine in class that day, so they started dividing up the space. Some picked points randomly. Others were more methodical, with some starting to trace the border of the region, but generally there was only a scattering of filled points on the class copy where I had asked them to record their colored in grid squares.
Having predicted how this would likely end, I was ready with this modified version of a Processing sketch written by Daniel Shiffman that basically did the entire task on the computer. The students were staring at the clock after doing this for about ten minutes and only having filled in a minimal portion of the plane. The students understandably said that this process was stupid and that there most likely was a better way for them to be spending their time. That's when I said they were right. 
You know when you design activities to carefully manipulate your students' emotions so as to realize a particular point, and it totally works? My students have a pretty distinctive facial expression that they each make when they realize I've done this, and right about then, it spread like wildfire through the class.
I showed them this:
This didn't contradict what they had come up with, but it was significantly more complete. I asked if there was any recognition, but there was none. So I decreased the pixel size more:
Still no recognition, but there was more recognition that the shape of the region was an odd one. One more iteration made it pretty clear:
We had looked at a video zooming into the Mandelbrot set earlier in the year, so they had seen it before. I wanted to push that the computer made it possible to investigate this sort of mathematics. This sort of thing could not have been done by hand at this level. Having the computer available to do repetitive calculations and construct graphs according to simple rules made it possible to investigate the mathematics of these areas in ways that were never known before. They were impressed that the mathematics of fractals was not investigated until 1980, which is recent enough for them to perhaps see that math is actually a dynamic field, in contrast to the way it is usually presented.
I liked this lesson, and plan to continue to push my students to use computation when necessary. Our first unit problem for the exponential and logarithmic functions unit was a twist on the penny problem (get one penny the first day,two the second, four the third, and continue on for a month, or just take a lump sum of $50,000) and I insisted they use some computational tool to answer this, or just straight out find it extremely difficult.
This is an important skill, and I believe in it. To make it happen, I am committing to deliberately committing time for students to learn how to use computers to do the computation work so we don't have to. I hope my days of seeing students solve the bee/train problem through tedious methods of manually adding terms together will soon be over.

Topic for #mathchat: Do we need students to reach automaticity?

I was honored when asked recently to offer a topic for discussion on #mathchat.

My suggested topic:

Is it necessary for students to develop automaticity in their pencil and paper mathematics skills? Why or why not?

First some definitions and examples to clarify the intent of the question.

By automaticity, I also mean procedural fluency. A student that has developed automaticity is familiar enough with the mechanics of a particular task to not have to devote substantial thought to how to do it. It also is connected to retention over time - how well do the details stick with a student as more information is learned over time?

In an Algebra class, for example, do the details of arithmetic need to be automatic so that the student can focus on applying algebra knowledge to solving an equation? In Calculus, should students be able to apply the product and quotient rules efficiently when working on optimization or related rates? Or is it reasonable for them to figure out the derivative using basic principles or use a computer algebra system to take care of this step when it comes up?

I also refer specifically to pencil and paper skills because, for what I would guess is a majority of us that teach math, we tend to assess students by pencil and paper at the end of the day. A student can use a graphing calculator, Geogebra, or other piece of technology to explore a concept and check her/his work. The thing I often wonder about is how the use of activities and technologies help students perform mathematical tasks when these technologies are not available.

Is it necessary to do these tasks when these tools are not available? I don't know. I think that's open to interpretation and individual opinion. There are some cases, however, when that choice is not up to us. Standardized tests are one example. Given that they do exist (and independent of whether or not we agree with their content/quality/use), standardized tests are not typically electronic and are timed. These are often posed as opportunities for students to choose an appropriate method of finding answers to questions and then find those answers with a limited set of resources available.

Let me be clear - I am wildly inconsistent on this, because I don't have a good answer to the question. I emphasize understanding through the activities I do in my classes - very rarely will I directly tell students how to solve a problem, have them practice the skills with me, and then send them home to practice those skills in isolation from others. I really appreciate Conrad Wolfram's point about using computers to handle the calculating, and leave the thinking to us and our students. I have decided on occasion not to assign #1-30 for students to practice differentiation because my feeling at that time is that if they can apply it correctly several times, they get the point, and are ready to apply that knowledge to more interesting contexts.

But when these same students that complete the short assignment, later struggle in finding anti-derivatives, I wonder if I should have drilled them more. My decision not to burden them with repetitive exercises because they are repetitive often has implications for the future of the students in class. Do I need to drill this to automaticity so that next year's teacher doesn't come complaining to me about how "your old students can't XXXXXXXXXX" where XXXXXXXXXX = [arbitrary math skill that either (a) will mean the difference between getting into a top choice school during Senior year or (b)won't matter at all ten years after leaving the classroom]?

So I call upon the collective brilliance of the #mathchat community to help find an answer.

For those unaware, #mathchat is a Twitter based chat held every Thursday night at 8PM in which all respondents use the hashtag #mathchat in their post so that everyone else following that hashtag is updated with the latest responses. If you aren't up on using Twitter for professional development, you need to be. It completely changed my perception of how Twitter is useful and has put me in contact with some pretty amazing folks from around the world.

Socializing in Geometry - Similar Triangles

Another successful experiment getting my participation-challenged geometry class to interact with each other yesterday.

Each student received a cut-out triangle from the image at left. The challenge:

One (or possibly two) people in this room have triangles similar to yours. Your task is to find the person and do the following:

  • Find the similarity ratio between your triangle and your match in the order big:small.
  • Determine the ratio of the perimeters of each of your triangles.
  • Determine the ratio of the areas of each of your triangles.

I then cut them loose. Almost immediately they started scrambling around the classroom holding up triangles and calculating as quickly as possible. (I didn't totally get why they were in a hurry, actually.) They clustered on tables and rapidly shifted partners until everyone found they were in the right place. The calculating began for perimeter - that was the easy part. Then the area question took center stage.

Some asked me how to find the heights of the triangles, and I shrugged my shoulders with the smirk of someone with ideas that isn't sharing them. (I call this my 'jerk' mode that I love taking on during class for the sole reason that it gets them finding and figuring on their own.) Some recreated the triangle in Geogebra. Some superimposed it over graph paper and counted to get an estimate. One student cleverly found Heron's formula. It was really entertaining watching them excitedly explain the formula without writing it down (something else I didn't understand) and share how it quickly and easily allows the area to be calculated. The energy in the room was apparent as they ran from person to person trying to get everyone to complete the task. Eventually they found out themselves that the similarity ratio was a square relationship. I didn't have to do a thing.

Part of my justification in doing this was to get them thinking about the important ideas necessary in solving another problem I threw their way during the previous class comparing the old iPad to the new one. The two different groups that had worked on it were generally on the right track, but there were some serious errors in their reasoning that I hinted at but didn't explicitly point out to them. I think this activity closed the gap. There should be some interesting answers to discuss in class when we next meet.

Stand up and wave!

I've had the skeleton of a lesson on standing waves in physics floating around in my brain for a long time. In the past, I've used just a white board and drawn some diagrams, and have occasionally shown some animations from the web to help students visualize the relationship between a vibrating string and the waves moving around on it.

Here was an attempt scanned from my first lesson back in 2006:

And more:

Nothing to write home about. My lesson had a bunch of information in it. Now in my defense, much of this I was eliciting from students. It was a very carefully designed progression of thoughts, and my students did end up understanding it well enough to then apply it to problems. (Better, in fact, than I was when I first tried to learn this in high school. This was one thing in physics that didn't make sense to me, and I was committed to having my students get it.)

There wasn't much for the students to grab onto or see - nothing dynamic or moving to engage them. The following year, I added some interactive applets, such as the one here. I didn't have a class set of laptops, so it was still a demo at the front of the room, but here it was possible to show much more clearly what was actually going on and students themselves could play around with the applet and get some intuition for how it worked.

Fast forward to the present. I've been teaching a non-AP level physics class and have been able to write my own curriculum along the way. As a result, we've been able to slow down and play with models, do experiments and play with data. Waves are inherently hard to visualize given the frequency of the sound waves with which we typically interact (not to mention their invisibility) so I wanted to try something different. Kate Nowak's recent post about using technology to do lessons that would be impossible also got me thinking how I could use the technology I have available to do this lesson in a fundamentally different way.

Here is what we did today:

First we watched this video on YouTube showing Tuvan throat singers in action. The kids had never seen this, and it shocked me the first time I heard it too back in high school during a class in electronic music. We also watched parts of the video of Daniel Palacios' standing waves art piece (Thanks to John Burk, @occam98 for sharing this find yesterday!)

We talked a bit about how the singers might be doing this, but there was no consensus. So I brought them to the back of the room where we had a spring waiting for us on the floor.

I challenged two students to create a single wave with the spring bouncing up and down. This quickly devolved into attempts to make two, three, and eventually six loops in the spring. Hands-on discovery of the relationship between the number of loops and frequency? Check. I had students identify points of maximum amplitude and stationary points, but no vocabulary yet.

We then made our way to another station where I had set up a strobe light and some tuning forks. We played around with the tuning forks and the strobe frequency to be able to visualize the movement of the tines of the fork during vibration. I showed a similar demonstration with a student plucking a guitar string. Objects vibrating up and down in the same way as the spring create sound. Simple idea.

None of this is really revolutionary, I admit it. The good stuff is coming, I promise.

During a workshop I attended with Nick Jackiw on Geometer's Sketchpad, I learned of a feature that I didn't know about. With periodic functions, you have the option is to add an 'action button' to your sketch that allows you to 'Play' the function as a sound. In the previous class when we investigated superposition, we learned how waves added together, even those of different frequency.  I created a simple GSP sketch that added three waves together in which the amplitudes and frequencies could all be changed.

So...wave superposition - they could see it happening in front of them mathematically. Now they could hear the effects of superposition, changing amplitudes and frequencies, and understand how different frequency waves could add together to create the sounds that we hear. Standing waves are things bouncing up and down--> bouncing things up and down make sound waves --> we can also make sound waves by combining waves of different frequencies together.

The real key to making the final connection comes from applying some technology on loan from National Instruments. I have been working with their myDAQ student data collection device in finding ways to adapt it for use in math and science classes. The device has a number of analog and digital inputs and outputs, which are nice, but they pale in comparison with the Audio-In port in terms of ease of getting data into the computer. That data can then be analyzed very nicely by LabVIEW to create a frequency spectrum of the audio data in. I downloaded the software from an NI support site describing a beer bottle music project.

Now to lead up to the climax of the class  - I had a separate function generator create a 880 Hz sine wave which we played over the speaker. We had just seen a graph of this function, so students knew what it looked like graphically, and then what it sounded like. I had them whistle to imitate the frequency, and  now I showed them the graph of the amplitude vs. frequency plot in Labview, which looked like this:


I could change the pitch of my whistle and students could see how the peak moved left or right as the frequency went up or down. This was an easy introduction to the concept of frequency space and what it could be used for.

As with most of my classes, I'm the only one usually willing to sing in front of everybody, so I gave it a go:

A plastic bottle I had left over from the day before (though I kept this part to myself during class) was just asking to be played, and that gave some interesting results blowing lightly across it when it was empty...

...partly empty:

...and more full than empty: (Look at those odd harmonics shine!)

What I liked the most about this activity is that we could pretty much put any sound the students wanted to make, and the frequencies would pop out as they did above. They could see how singing a note and changing the shape of one's mouth changed the amplitude of the various harmonics associated with the sound, and that was what we were really hearing as different sounds.

This all  breaks down to what I think is the most challenging concept for students to really understand about standing waves: If the sound waves we hear are made up of all of these different frequencies (as shown by these graphs we generated in real time), then it means the objects generating those sounds (bottles, voices, strings, tuning forks) are somehow able to vibrate at a whole bunch of frequencies at the same time.

At what various frequencies does it then vibrate?


Now we get to look at those diagrams relating length, wavelength, and frequency that used to show up at the beginning of my lesson before. Fifteen minutes at the end of class to find the frequencies of vibration for a string and a tube closed at one end - they figured it out pretty easily without much prodding.

This was NOT what I used to think a good physics lesson (or any lesson) needed to be: a series of presentations of content that made logical sense. Then we drill like crazy through problems to use the ideas.

Instead, we had a series of experiences that let the students interact in a visceral way with the material. Students could see waves and feel them. They could hear them. They could see what it sounded like when they were added together. They could observe how this new special graph took sounds in and spit back the frequencies of the individual waves that made them. I told them briefly about Fourier and showed them what happens when you play a triangle wave or sawtooth wave into the spectral analyzer - they easily saw the patterns of harmonics for each and (I think) had some intuition for what that meant. No need to have a bunch of theory first before seeing it in action.

I could not have done this with just a whiteboard. Or just a projector. The ease with which I was able to generate a frequency spectrum, create audible sine waves, model super position in a visible and tangible way - these were because of the convergence of technology in front of me. This is how technology is changing things as we speak - the tools to do these things are getting more and more easy to obtain by anyone. We have to get these tools in the hands of our students - they will run with it and get more out of it than we might even understand. We need to be there to guide them in the right direction - we need to help them decide from which parts of the fire-hose to drink.

This reminds me of two years ago when my dad was doing some data collection of sound levels near wind turbines in North-Eastern Ohio. He learned that there were already some applications available to do basic audio analysis on the iPhone that was similar to what the more expensive scientific equipment could do. That was two years ago. Now you can do this (from Faber Acoustical):

Fundamentals are still important. My students wouldn't understand any of what we did today if they didn't know what a sine wave is and what it means for a wave to have a frequency.

My argument is that we can bounce back and forth between theory and application. Let's meet at a happy point in the middle where we can all do a big dance, capture it on video, and send it to YouTube. The whole "they need to understand the basics first" or "do their time" with the boring stuff argument is a hard one to maintain with these amazing tools available that used to only be accessible to universities and companies with deep pockets. Kids take to technology like ducks to water - using it to enable learning in an engaging and relevant way is one of the most powerful aspects of its presence in our classroom.

This lesson felt great today. I've always wanted to teach standing waves and show in depth what they are all about, but have never had the right tools at my disposal. This  is exactly the sort of style I want for all my classes - exploration and play that leads to a lesson that motivates itself. Ultimately I hope this lesson leads to a stronger connection and conceptual understanding of the material - they got it a whole lot faster than I did.

I hope that says more about them than it does about me....