Principia Mathematica
This month finds me in Illinois, teaching a computer programming course to a class of new hires. Teaching the material, observing the students, and working through the sample problems has caused me to reflect on my own path that has lead me to this point—and how, in many ways, I never really thought I would be in this position.

In school, I always dreaded my math classes. I was often frustrated by the homework, lost during class instruction, and was prone to sub-par grades on exams. My algebra class taught me that I could usually grasp the material one unit too late, when the rest of the class had moved on to new topics. My geometry class instilled in me a strong aversion to proofs and showing my work. Algebra 2 was an exercise in barely squeaking by, although Ms. Bromley’s teaching method was one that actually did click with me. Pre-calculus was a change in pace: Mr. Harward’s class was one in which it was impossible for any student to coast—he could smell a checked-out student a mile away, and knew how to put them on the spot. I grasped things better in that class, and even though I was handy with graphing equations (and was deeply struck by the magic known as synthetic division) I still failed to really see any forest through the trees. I continued to wonder what this elusive “calculus” nonsense was all about. A tantalizing clue came in a physics class, when, while most of the students were struggling to compute an object’s acceleration with only the velocity given, one advanced student announced smugly that “it’s easy if you know calculus.”

Before diving into calculus, I took the final pre-requisite: trigonometry. I never memorized my unit circle chart properly. But that class changed me in very significant ways. Thanks to a fellow student, I discovered the potential of my TI-86 calculator. At first I used it as a shortcut to convert between radians and degrees, but I soon discovered I could program it to turn decimals into fractions, simplify radicals, and do all sorts of tasks I would otherwise have to do by hand. When I moved on to advanced placement calculus, I had a toolkit that I was sure would serve me well. I was confident I could make my calculator do my bidding, thereby sparing me the busywork that would doubtless be required by the teacher.
I was wrong. Derivatives, integrals, and limits slapped me silly, and my home-brewed calculator apps left me feeling like I was riding a go-kart on the interstate. In the tradition of my algebra class, I found myself again grasping the material consistently one unit too late, and looking longingly at my calculator to rescue me from functions, chain rules, and theorems I was being subject to. I floundered through that year, and surprised myself by completing the AP exam with a barely passing mark.
As I got into college, I hoped my calculus experience would serve me well, and I ambitiously enrolled in a college calculus course. When I failed the pre-requisite placement exam and got transferred into a remedial trigonometry class, I was crestfallen. The following semester, I signed up for an Intro to Computer Programming course, thinking that my TI-86 wizardry would make it a breeze. When the teacher introduced the object-oriented paradigm to us in the language of Java, my head hurt. This looked nothing like TI-BASIC! What was a method? A class? An object? Why couldn’t any teacher, TA, or fellow student explain this in a way that made any sense to me?

I completed the year with failing marks in both Mathematics and Computer Science, and determined it was time to chart a new course. One in the humanities, maybe. Or in media arts. But this math and computers stuff was not for me.
As I regrouped for my sophomore year, I knew I had to rectify the grade situation, so I committed myself to retaking these two classes. Not to make peace with them, or give them a second chance, but just to seal the transaction, and be ready to move on. I spent extra time in the math lab. I would get extra help from computer savvy friends as I did my Java assignments. I disposed of the expectations I had come with the first time, and just paid my dues, did as I was told, and got through it. I got A’s in both classes that semester, and was ready to move on.
But something had happened to me during that time. Instead of seeing math and programming as a series of tasks to be accomplished, I had started to see them as a functional framework of tools used to both describe and solve conceivable problems found in the natural world. I was finally able to both think and work in the abstract.

Memories of past math classes flowed back to mind. In pre-algebra, I had learned about π. The value you will always get when you divide any perfect circle’s circumference by its diameter. I thought of all the circular forms in the universe: planets, stars, atoms… each one has π lurking in its structure. This elusive number is hard-wired into every circular form in the universe, and somehow, humans have discovered the means to unveil its value:

This mathematical expression, a sum of an infinite series, has been known to humans for centuries. What I found most signficant, however, is that I could write an approximation of this expression—limited only by time and memory constraints—in Java code:
|
1 2 3 4 5 6 |
double factor = 0;
int max = 1000000; //maximum amount of iterators I have patience for
for(int k=0; k<=max; k++)
factor += Math.pow(-1,k)/((2*k)+1);
double pi = 4*factor;
System.out.println(pi); |

I also remembered learning about φ in geometry. It is the value that forms the basis for the golden ratio, and can be used to produce the Fibonacci sequence. It describes countless forms found in the mineral and biological worlds.

The principles of design and aesthetics I had learned in art classes and a brief exploration of 3D modeling have the golden ratio—and therby φ—encoded into themselves at every turn. And now on the computer, by employing mathematical formulae and a recursive function, I could approximate the value of φ:
|
1 2 3 4 5 6 7 8 |
public static double goldenRatio(double input)
{
if (input <= 0) return 1;
return 1.0 + ( 1.0 / goldenRatio(input-1));
}
public static void main(String[] args) {
System.out.println(goldenRatio(1000));
} |

I furthermore reflected on my introduction to calculus, and recalled learning about Euler’s number: e. The basis for the fundamental exponential function: f(x) = ex. This is the only function whose slope is always equal to its x-value; ergo, it is its own derivative. Using limits, the value of e is computable with an elegant mathematical expression:

All of these constants existed in the universe long before any human discovered them, or even before any natural object was around to manifest them. Mathematics, and its ability to be represented and expressed with digital processes, took on a mysterious appeal that I previously did not know.
With fresh eyes, and a new vantage point, I decided to major in Information Systems. The curriculum took me into advanced enterprise system development, business calculus, and landed me a part time job programming web applications on campus. My eyes were opened to the utility of reusable functions; to the efficiency of object-oriented and relational models; and to the mobilizing effect of multi-dimensional arrays and matrices. My personal projects continually expanded my grasp of both technical and functional concepts, and upon graduation, I began my career in technology consulting.
Now I find myself having come strangely full circle. I’m teaching a class of new-joiners the very same things I miserably failed at nearly a decade ago. When they wonder about the applicability of the course material by asking “when are we ever going to use this?” I wish I could adequately convey to them the power of the abstract, the elegance of the uninstantiated model, and the infinite possibilities encapsulated inside a robust formula.
As I consider how computer programming provides the means to bring theoretical and mathematical abstractions into functional processes, I am reminded of the early founders of western thought, and how they were constantly philosophizing about the balance between the material and the conceptual. Plato favored the abstract, and explained why:
Arithmetic has a very great and elevating effect, compelling the mind to reason about abstract number, and rebelling against the introduction of visible or tangible objects into the argument.—Plato, “The Republic”
I continue to see the wisdom in his appeal to mathematics as an all encompassing language and framework through which nearly all other problems may be approached. I wonder what Plato would think of the innovations of the past century, and if he would be pleased that the mathematical abstractions he was so fond of have gained new life inside of computer processes and simulations. Mathematics constitutes the most primitive and elementary generic concepts of all, and yet is the lens through with nearly all other disciplines can be viewed. This idea was cleverly articulated by XKCD:
The more I spend time studying the intricacies of abstractions, formulas, models, ideas, and concepts, I am repeatedly brought back to a sense of wonder that these things exist outside of time and space, matter and mass, in a realm where moth and rust does not corrupt. Yet somehow, these abstractions still require some sort of medium in order take life in the natural world: in human neurons, in ink on paper, on magnetic tape, in an electromagnetic wave, running through a silicon chip, in a stream of photons, in fluctuation of air pressure, or etched in stone.
The medium is only as relevant as its ability to store and transfer the abstraction which is contains. And that is where this new age of technology proves to be a serious game-changer. Never in the history of humanity have ideas been more readily stored, transferred and processed. Formulas devised by Euclid and Newton can now not only be expressed on paper, but for the first time, can be instantiated and computed by means other than a human mind: computers give a palpable breath of life that heretofore could only be given by cranial capacity and perhaps by some crude mechanical devices like the abacus.

That is what draws me to information sciences and technology. When I write code, I feel like I’m giving wings to ideas that previously existed only in the abstract, platonic world of imagination and dreams. When I make use of cloud-based networks and backup my files, I sense that data is more than the material on which it resides. When I transfer data or employ a network of any sort, I consider the fact that I am manipulating intangibility by means of the very fabric of space-time itself. And then the bigger picture comes into view. The central questions of ontological philosophy gain new depth when we see that humans now have the ability to harness the non-material world in very powerful ways. Somehow, the study of mathematics—arguably the purest of all disciplines—expressed in the digital, programmatic confluence of the abstract and the concrete, seems to me to hold the key to furthering our understanding of the nature of the universe, and our place in it. When we are able to discover universal constants or other mathematical truths that describe the very substance of reality, we become part of a metaphysical archaeological adventure taking us out of our current scope into a timeless, spaceless, formless reality where the very laws of existence itself are defined.
Where does it come from, this quest? This need to solve life’s mysteries when the simplest of questions can never be answered? Why are we here? What is the soul? Why do we dream? Perhaps we’d be better off not looking at all. Not delving, not yearning.But that’s not human nature. Not the human heart. That is not why we are here. Yet still we struggle to make a difference, to change the world, to dream of hope, never knowing for certain who we will meet along the way. Who among the world of strangers will hold our hand, touch our hearts, and share the pain and triumph?—Mohinder Suresh, Heroes, Season 1, Episode 23
I believe that the answers to the world’s most profound questions lie in the continued exploration of mathematics and computational technology. Increasing our understanding of the horizon where heaven meets earth, mind meets body, abstract meets concrete, thought meets deed, dream meets reality, idea meets implementation, and spirit meets substance will open new doors, create new paths, and lead us to new, previously unknown—and currently inconceivable—heights.
Why didn’t my middle school pre-algebra teacher just tell me so?




