## The Nature of Variables for Students vs. Programmers

Dan Meyer has provoked us again with this post questioning the meaning of variables in programming compared with how they exist in the minds of our students.

I previously wrote about something I tried at the beginning of last year with my students that probed this question a bit. My contention then was that writing expressions is something that occurs with students only in math class world, and that it is an inherently non-interactive process. The spirit of what variables do is something with which students have familiarity. It's the abstraction of the mathematical representation that pushes that familiarity away from them.

I'm going to use a different expression problem since the one in Dan's post doesn't do it for me.

### Dan estimates that around 3/4 of any group of people drink soda.

Students could each click on the people go through the process of figuring out how many in each group drink soda according to Dan's estimate, and would record the number in each group. The third group serves to construct a bit of controversy for discussion purposes. In doing this four times, students are presumably going through a similar process each time.

Mathematics serves to create structure for this repetition, but on its own, is not necessarily in the realm of what our students would do to manage this repetition. Programming provides a way to bridge this gap using the same idea of variables that exists in the mathematical realm, and here is where the value sits for this discussion.

In the post I mentioned previously, I said that I briefly showed students how to type expressions into a spreadsheet and play around with inputs and outputs so that they match concrete values. In a non 1:1 laptop classroom, I might start with this:

A calculation links the outputs to the inputs in each of these tables. Students have concrete values sitting in front of them, so they will notice that each of these tables must be making the wrong calculations, even though they each have one correct value. Here, we have the computer making the same calculation each time, but these calculations do not work in each case. This is the wrong model to match our data. The computer is doing exactly what we are telling it to do, but the model is wrong.

How do we fix this, class? Obviously we use a different computational model. I might have students decide in a group what calculation I need to do to correctly reproduce the values from the exercise, and elicit those suggestions from them.

Once we establish this correct model, this calculation we are making is common to every set of data. We can show that this calculation makes an interesting prediction of 7.5 people liking soda in the group of 10. We can use this calculation to predict how many people in a group of 28 drink soda (and in a 1:1 classroom, I'd have them go through this entire programming process themselves.)

I might now generate a table hundreds of entries long and ask whether there is a better way to represent the set of all possible answers to this question. The table will work, but it is tedious. We need a better way. How do we do this? Here is where variables come in.

Programmers use variables because they want to build a program that produces a correct output for every possible input that might be used to solve a given problem or design. Mathematicians also want to have the same level of universality, and have a syntax and structure that allows for efficient communication of that universality. Computers are really good at calculating. The human brain is really good at managing the abstraction of designing those calculations. This, ultimately, is what we want students to be able to do, but they often get lost in both the design stage and the calculation stage, especially because these get divorced from the actual problem students are trying to solve.

If we can have students spend more time in the design stage and get feedback on whether their calculations are correct, that's the sweet spot for making the jump to using mathematical variables.

## Volumes of Revolution - Using This Stuff.

As an activity before our spring break, the Calculus class put its knowledge of finding volumes of revolution to, well, find volumes of things. It was easy to find different containers to use for this - a sample:

We used Geogebra to place points and model the profile of the containers using polynomials. There were many rich discussions about wise placement of points and which polynomials make more sense to use. One involved the subtle differences between these two profiles and what they meant for the resulting volume through calculus methods:

The task was to predict the volume and then use flasks and graduated cylinders to accurately measure the volume. Lowest error wins. I was happy though that by the end, nobody really cared about 'winning'. They were motivated themselves to theorize why their calculated answer was above or below, and then adjust their model to test their theories and see how their answer changes.

As usual, I have editorial reflections:

• If I had students calculating the volume by hand by integration every time, they would have been much more reluctant to adjust their answers and figure out why the discrepancies existed. Integration within Geogebra was key to this being successful. Technology greases the rails of mathematical experimentation in a way that nothing else does.
• There were a few many lessons that needed to happen along the way as the students worked. They figured out that the images had to be scaled to match the dimensions in Geogebra to the actual dimensions of the object. They figured out that measurements were necessary to make this work. The task demanded that the mathematical tools be developed, so I showed them what they needed to do as needed. It would have been a lot more boring and algorithmic if I had done all of the presentation work up front, and then they just followed steps.
• There were many opportunities for reinforcing the fundamentals of the Calculus concepts through the activity. This is a tangible example of application - the actual volume is either close to the calculated volume or not - there's a great deal more meaning built up here that solidifies the abstraction of volume of revolution. There were several 'aha' moments and I saw them happen. That felt great.

## The post where I remind myself that written instructions for computer tasks stink.

It's not so much that I can't follow written instructions. I'm human and I miss steps occasionally, but with everything written down, it's easy to retrace steps and figure out where I went wrong if I did miss something. The big issue is that written instructions are not the best way to show someone how to do something. Text is good for some specific things, but defining steps for completing a task on a computer is not one of them.

Today I showed my students the following video at the start of class.
GEO-U6D2.1-Constructing Parallelogram in Geogebra

I also gave them this image on the handout, which I wrote last year, but students only marginally followed:

It was remarkable how this simple change to delivery made the whole class really fun to manage today.

• Students saw exactly what I wanted them to produce, and how to produce it.
• The arrows in the video identified one of the vocabulary words from previous lessons as it appeared on screen.
• My ESOL students were keeping up (if not outpacing) the rest of the class.
• The black boxes introduced both the ideas of what I wanted them to investigate using Geogebra, and simultaneously teased them to make their own guesses about what was hidden. They had theories immediately, and they knew that I wanted them to figure out what was hidden through the activity described in the video. Compare this to the awkwardness of doing so through text, where they have to guess both what I am looking for, and what it might look like. You could easily argue this is on the wrong side of abstraction.
• I spent the class going around monitoring progress and having conversations. Not a word of whole-class direct instruction for the fifty minutes of class that followed showing the video. Some students I directed to algebraic exercises to apply their observations. Others I encouraged to start proofs of their theorems. Easy differentiation for the different levels of students in the room.

Considering how long I sometimes spend writing unambiguous instructions for an exploration, and then the heartbreak involved when I inevitably leave out a crucial element, I could easily be convinced not to try anymore.

One student on a survey last year critiqued my use of Geogebra explorations saying that it wasn't always clear what the goal was, even when I wrote it on the paper. These exploratory tasks are different enough and more demanding than sitting and watching example problems, and require a bit more selling for students to buy into them being productive and useful. These tasks need to quickly define themselves, and as Dan Meyer suggests, get out of the way so that discovery and learning happens as soon as possible.

Today was a perfect example of how much I have repeatedly shot myself in the foot during previous lessons trying to establish a valid context for these tasks through written instructions. The gimmick of hiding information from students is not the point - yes there was some novelty factor here that may have led to them getting straight to work as they did today. This was all about clear communication of objectives and process, and that was the real power of what transpired today.

## Cell phone tracking, Processing, and computational thinking

I gave a survey to my students recently. My lowest score on any of the questions was 'What I learn in this class will help me in real life.' I've given this question before, and am used to getting less than optimal responses. I even think I probably had a higher score on this question than I have received previously, but it still bothers me that we are having this discussion. Despite my efforts to include more problem solving, modeling, and focusing on conceptual understanding related tasks over boring algorithmic lessons, the fact that I am still getting lower scores on this question compared to others convinces me that I have a long way to go.

I came up with this activity in response. It combines some of the ideas I learned in my Udacity course on robotic cars with the fact that nearly all my students carry cell phones. While I know many cell phones have GPS, it is my understanding that phones have used cell towers for a while to help with the process of locating phones. It always amazes me, for example, how my cell service immediately switches to roaming immediately when driving across the US-Canada border, even when I had a non-GPS capable phone.

My students know how to find distance using the distance formula and sets of coordinates, but they were intrigued by the idea of going backwards - if you know your distance from known locations, can you figure out your own location? The idea of figuring this out isn't complicated. It can most easily be done by identifying intersections of circles as shown below:

One of my students recalled this method of solving the problem from what he saw in the movie Taken 2 , and was quickly able to solve the problem this way graphically in Geogebra. Most students didn't follow this method though - the general trend was to take a guess and adjust the guess to reduce the overall error until the distances were as close to the given distances as possible.

I got them to also look at other situations - if only two measurements to known locations are known, where could the cell phone be located? They played around to find that there were two locations in this case. I again pointed out that they were following an algorithm that could easily be taught to a computer.

I then showed them a Processing sketch that went through this process. It is not a true particle filter that goes through resampling to improve the guessed location over time, but it does use the idea of making a number of guesses and highlighting the ones with the lowest error. The idea of making 300,000 random guesses and choosing the ones that are closest to the set of distances is something that computers are clearly better at than humans are. There are analytical ways of solving this problem, but this is a good way of using the computational power of the computer to make a brute force calculation to get an approximate answer to the question.

You can look at the activity we did in class here:
Using Cell Phones to Track Location

## First day of Geometry proofs - Refining my process

Fatal error: Cannot declare class VideoPress_Video, because the name is already in use in /home/weinbergmath/webapps/blog/wp-content/plugins/jetpack/modules/videopress/class.videopress-video.php on line 7