Mathematics Education: Taking a Clue
From the Recent Technological Revolution

Technology - a Missed Aspect

From The American Heritage Dictionary:

tech·nol·o·gy 1. a. The application of science, especially to industrial or commercial objectives. b. The scientific method and material used to achieve a commercial or industrial objective. 2. Anthropology. The body of knowledge available to a civilization that is of use in fashioning implements, practicing manual arts and skills, and extracting or collecting materials.

And from Webster's New Collegiate Dictionary:

tech·nol·o·gy 1: Technical language 2 a: applied science b: a technical method for achieving a practical purpose 3: the totality of the means employed to provide objects necessary for human sustenance and comfort.

This is important. This is important because, besides computers and networks, there is something else that we may borrow from technology and put into the classroom. Imitation may be successful. Technology is not only computers, software and networks. Technology is also a science and the scientific method. Technology underwent a tremendous revolution in the last 10-15 years. It's important to understand what was the source of the unparalleled success of the technological development we witness today. What was the enabling idea, the single most important factor?

My short answer is

Object Oriented Approach

The term "object-oriented" originates in software development where it means organization of software as a collection of discrete items - objects - that incorporate both data structure and behavior. Its predecessor - the structured approach - emphasized data structures and the design of procedures that applied to those structures or their elements. In the object-oriented programming, procedures became methods, an integral part of the object, its raison d'être. Objects are functional units that not only contain data but also "know" how to manipulate their data.

Here's a trivial example, Description of a polygon:

 Structured approach OO Approach
Item  Number of points
Array of points
Edge thickness
  Number of points
Array of points
Edge thickness
Invocation DrawPolygon(polygon)    polygon.Draw()

The distinction may seem insignificant but it is not. Should it be decided to label the vertices, then the function would have to be rewritten. The programmers would have to become aware of how labels are stored in the structure - and I can think of at least a dozen different ways or so. The users of the object polygon, on the other hand, would have to do nothing beyond requesting that the designers of the object provide a means of to label the vertices.

What preceded the era of structured programming might be, in some cases, called art; in most cases it was just doodling. Programming was a one-time effort - either you make it or not. Finding and fixing bugs - maintenance, in general - was an extremely tedious and costly enterprise that simply defied a priori estimates.

Structured programming improved the situation somewhat. It raised hopes that programming might really venture from laboratories into the real world. Soon it was discovered that, as the complexity of programming tasks grew, so reliability of the end result diminished. Programming, still, was more of the art than of a trade. One either had it or not. And good programmers were in short supply.

The OO approach - methodology, if you will - enabled mass production of programmers. Being an artist is still important. But programming became a trade. Even an average programmer, nowadays, is able to create a non-trivial application by combining pieces from object libraries. The best of the programmers create such libraries. Even the artists among them got a headway. Complexity of their art was pushed much farther than was possible with the structured approach.

Interestingly, Edward Yourdon, one of the fathers and chief promoters of the structured programming, wrote two books in the interval of three years:

  1. Decline & Fall of the American Programmer (1992)
  2. Rise & Resurrection of the American Programmer (1996)

The second book covers object oriented methodology, client/server architecture, Java, the Web and more.

I must say that I never read the first book. The idea, I was told, was that the software development enterprise was in a state of crisis. It became impossible to deliver flawless software of complexity required in industrial applications. On one hand, software "that works most of the time" might be produced by a much cheaper labor overseas. On the other hand, American culture could not accept a less than perfect solution to a programming problem. Hence, a prediction of a loss of leadership of the American programmer.

The prediction came wonderfully wrong. American Microsoft and Oracle are the #1 and #2 in the software world, the Web is coordinated by Internic Software, the first Web browser was written by an American student at an American university, and so on.

I strongly believe that we would not be where we are today without the emergence of the object-oriented methodology. I also believe that the object-oriented methodology has significance for the education reform beyond mere utilization of computers, networks and the Web.

Index|| Teacher| Technology| OO History