Tuesday, July 21, 2009

How is a function like a recipe?

I was talking about function notation with my students, and trying hard to differentiate between f, f(x), and f(x)=x+3. The metaphor that I tried was recipe. Does anyone else have a good metaphor that helps to distinguish these concepts?


Whit said...

I am not certain I am interpreting the question correctly... but I'll try anyhow.

Many students I work with have difficulty with function notation - I believe most of their trouble stems from never having seen a situation where function notation was really needed - so I resort to computer (or calculator) programming.

My calculator has a function called Circle built into it. If I show you a use of the function, say Circle(1,2,3), can you tell me exactly what it will do? If you have not worked with this function before, probably not.

If I were to ask you to draw a circle that I am thinking of on the coordinate plane, what information would you want to know from me in order to be able to draw exactly what I am thinking of?

Typical answers include a set of points the circle passes through, the coordinates of the center and the diameter, or the center and the radius.

Suppose we go with the center and the radius. That would require three numbers: the x and y coordinates of the center, and the radius. OK... going back to Circle(1,2,3)... which of these three numbers is the radius? In the absence of a a description of the function, I cannot say with certainty.

I *can* tell you that the name of the function is "Circle". The name by itself is useful, as it helps me guess that this function might draw a circle for me. Too bad most functions in math class are abstract, and given names like "f" or "g". They would be so much more memorable if they had names like Plus1, or DoubledPlus1.

I still need more information about Circle though. If I open the programming manual, and find the function's description, I find something like:
from which I would correctly infer that the first parameter is the x coordinate of the center, the second the y coordinate, and the third the desired radius of the circle.

This is now enough information for me to use the function successfully in the computer, but not enough information for me to successfully reproduce its results. For that, I have to go read the programming behind the function, which tells me exactly how the function produces those results. In math class, this is the equivalent of reading the function definition f(x)=x + 3.

Then I like to add one more wrinkle. What if the function definition has variables in it that are not listed in the argument list? This seems to happen a lot in Economics... and the answer is: the variable that is not an argument is usually some external constant.

So it is very important to see all the arguments listed in the function definition. They tell you what values will be needed as inputs, which positions each must appear in the argument list, and which variables that occur in the definition are passed to the function as arguments - as opposed to being assumed to be specified outside of this function.

Does this approach work for you?


Matt said...


You definitely understood the question. I like the computer programming example. At my school, very few of the students have very much comfort with programming (I wish they had more, and demanded it more).

So while the computer example is good, I would prefer something that they are familiar with. Although your example makes me think of Excel, which I wish we did more with at my school in the math department. Not because I love Excel so much, but I do think that almost anyone who thinks quantitatively as part of their profession will at some point use Excel or some other spreadsheet, and there are many examples of spreadsheet function that could be used.

I have been very surprised as I have taught AP Statistics that students really understand quite quickly and easily that if two quantities are not related then the slope of the line of best fit would be zero. This indicates to me that students don't struggle with the idea of inputs that don't change the output.

Thanks for your input!