TITLE: Unexpected Encounters with Knowledge
AUTHOR: Eugene Wallingford
DATE: April 13, 2010 9:03 PM
DESC:
-----
BODY:
In response to a question from Francesco Cirillo,
Ward Cunningham says:
*
***Reflecting on your career choices is there anything
you would have done differently?**
I'm pretty happy with my career, though I never did
enough calculus homework if I think how much calculus
has influenced how I think in terms of small units of
change.

Calculus came up in my programming languages course
today, while we were talking about maps, finite
functions, and discrete math. Our K-12 system aims
students toward calculus, and when they arrive at the
university they often end up taking a calculus course
if they haven't yet already. Many CS students struggle
in calc. They can't help but notice the dearth of
applications of calculus in most of their CS courses
and naturally ask, "Why are we required to take this
class?"
This is a common discussion even among faculty. I
can argue both sides of the case, though I admit to
believing that understanding the calculus at some level
is an essential part of being an educated person, just
as understanding the literary and historical context
in which one grows and lives is essential. The calculus
is one of the crowning achievements of the Enlightenment
and helped to usher in the scientific advances that
define in large part the world in which we all live
today. But Cunningham's reflection encourages us to
think about calculus in a different light.
Notice that Cunningham does not talk about direct
application of the calculus in any program he wrote.
The only program he mentions specifically is
WyCash,
a portfolio management system. Nor does he talk in
an abstract academic way about intellectual achievement
and the Age of Reason.
He says instead that the calculus's notion of *small
units of change* has affected the way he thinks.
I'm confident that he is thinking here not only of
agile software development, with its short iterations
and rapid feedback cycle, but also of test-driven
development, patterns, and wiki. One can accumulate
value in the smallest of the slices. If one accumulates
enough of them, then over time the value one amasses
can be the area under quite a large curve of action.
This is an indirect application of knowledge. Ward
either did enough calculus homework or paid enough
attention in class that he was able to understand one
of the central ideas underlying the discipline. That
understanding probably lay fallow in his mind until
he began to see how the idea was recurring in his
programming, in his community building, and in his
approach to software development. He was then able
to think about the implications of the idea in his
current work and learn from what we know about the
calculus.
I am a
fan of Ward's
in large part because of his wonderful ability to
make
such connections.
It is hard to anticipate this kind of connection
across domains. That's why it's so important to be
educated widely and to take seriously ideas from
all corners of human accomplishment. Even calc
class.
-----