Why do People say "Calculus is Impossible"?
Now that we're done studying the four principle ideas of calculus--functions, limits, derivatives and integrals--I hope you'll agree that calculus is not impossible. Intricate? Sure. Surprising? Absolutely! But impossible? No way.
In some sense, you can summarize calculus really simply:
- Functions are a great tool for making mathematical models of the world you live in.
- Derivatives of functions provide you information about the growth rate of a function.
- Integrals of functions provide you with information about the accumulated effect of a function.
- Limits are the "guts" under the hood of both derivatives and integrals.
- The Fundamental Theorem of Calculus relates bullet points 2 and 3 in a surprising and useful way.
f(x)
is a mathematical model, then the derivative of f(x)
is another function, f'(x)
, that keeps track of the growth rate of f(x)
. In other words, derivatives tell you how a model of a quantity is changing. Or you might also describe the derivative in an object-oriented fashion: the "derivative
" acts on "function
" objects to produce new "function
" objects (derivatives) that report "growth rate
" objects.
But if you start unpacking this definition, there's quite a few other objects that are swirling around under the hood, some are equivalent, some are not. Let's walk through them. First of all what exactly is the "growth rate
" object the derivative reports? Intuitively it's how quickly the function f(x)
is growing. But the mathematical construction of a "growth rate
" object was actually as a "slope of the tangent line
" object. So the "derivative
" concept actually reported a "slope of the tangent line
" object, and in the context of a model, a "slope of the tangent line
" object is equivalent to a "growth rate"
object. What's worse: in a mathematical vacuum--where a function is not a mathematical model--there is no relationship between these objects; the equivalence only exists when the original "function
" object is a model of something real. Are you starting to see how calculus is challenging you to be flexible with object types?
But that's hardly the end. What's a "slope of tangent line
" object? As we saw when defining it, "slope of tangent line
" objects are really "limit of slope of secant line
" objects. Yet another object equivalency, but this one is valid in a mathematical vacuum!
To understand the derivative fully you really do need to have a firm understanding of the relationships amongst these object types. Slip up just one of these object types, and you really don't understand what's going on, and worse yet, it might actually be impossible to proceed.
For instance, a common mistake is for people to mix up a "slope of tangent line
" object with simply a "tangent line
" object when trying to gain conceptual understanding of the derivative. But that's wrong. The derivative does not report back tangent lines; it reports back a slope of a tangent line. If that object equivalence isn't correct, problems immediately start to form. For instance, if a student incorrectly expects a derivative to report back a "tangent line
" object, but when they use a derivative they get a "number
" object as an output, confusion ensues. "What is this thing? Where's the line? Where's the y-intercept?" This type of mistake is exactly where I believe the common refrain "calculus is impossible" stems from. The processes of calculating and using derivatives are entirely mechnical, but understanding the objects that you are interfacing with is tricky.
The good news is, developing comfort around object types is precisely one of the skills acquired in computer programming, and it's no accident that this book relied so heavily on Geogebra. Using a computer forces you to think carefully about object types. If you attempt to use a "line
" object where a "number
" object is expected, you get an error, and are forced to confront it before you can move forward. Although it's frustrating, immediate feedback that an object-type-error has occurred is better than spending time with the error and allowing it to creep in and poison other parts of your conceptual understanding.
So what can we do about this? How can we get people to stop staying "calculus is impossible?" In my opinion, the pathway is to push people to think about calculus in an object-oriented perspective. Students of calculus don't need much practice with computations and calculations; let the computer do most of that. But students do need to be challenged to think in an object-oriented fashion. This is precisely one of the subtle things I did throughout this book. I went to great lengths to identify object types as accurately as possible in the hope that you might start to think this way as well. As one example, throughout the chapter on functions, I made a point out of fumbling with object types, specifically, I was purposefully clumsy with "point on graph of function
" objects and "output of function
" objects (which are special "number
" objects) to force you to develop flexibility. In my opinion however, you really can't tell the reader you're doing this because telling them we're about to study "object type flexibility" really will scare people away, and that would defeat the whole purpose of the book.
It's worth pointing out also that there were plenty of times where I simply couldn't be exactly accurate with object types because the language would become too cumbersome. A good example is near the end of "Falling Stuff on Earth". I wrote
The code snippetDo you see the object error? I'm wrongly identifyingintersect(s(x),y=0)
will find two points, one of which isSPLAT!=(62.79,0)
the time the model predicts the missile will land.
SPLAT!,
which is a "point
" object, as a "time
" object. Only the x-coordinate of SPLAT! is a "time
" object. I did this because the language would become unwieldy if I said "the x-coordinate of which is the time the model predicts the missile will land."
Nonetheless, it's a minor error, and I expect you read right through it, quickly building a temporary "point
" and "time
" object equivalency on the spot to make sense of the situation. This is a sure sign that you deeply understand the object equivalencies that are swirling around and are able to be flexible with them. That said, if you attempt to use SPLAT!
in the function s(x)
, Geogebra will respond with an error. The function s(x)
can only accept "number
" objects. If you give it a "point
" object it really isn't sure what to do with it. If you want to feed SPLAT!
to s(x)
, you'd need to use something like x(SPLAT!)
to obtain the x-coordinate of SPLAT!
as a "number
" object, and only then can you feed that "number
" object to s(x)
.
You might balk at needing to do such things, but it is my firm belief that understanding the relationships between the concepts and objects is the real challenge in calculus. The algebraic calculations themselves are mechanical and the stuff a computer can do. But knowing what object relates to what other object, how they are similar, and how they are different; this is the job of us humans and this is what must be taught in calculus courses to achieve students success.