Much of my research has been aided by the use of computer software. For example, 3D graphics programs have been instrumental in developing and verifying the polyhedral models discussed above, and I wrote most of this software myself. Traditionally, such work has not been considered part of a mathematician's research. One reason is that it is relatively new; it has only become available in a meaningful way in the last few decades, so there is little historical precedent for how to judge it. As computational and graphical work become more important in mathematics, however, we will have to determine a means of including software development as a valuable part of our scholarly activity.
One possible analogous situation occurs in the physical sciences, where, for example, a physicist must design and build equipment to perform an experiment. The equipment is not itself the result, but is essential for conducting the experiment and is considered a part of the research being performed. The same should hold true for mathematical software: the program may not be considered the end result, but is a crucial component for obtaining that result. Furthermore, while a piece of scientific equipment may be useful only for one specific experiment, a well-designed program can be used over and over for further research, or in the classroom for educational use.
Some would say that we should not be involved in software development, that commercial programs should fill our needs. A researcher at the cutting edge of his field, however, can not wait for a software company to decide that there is a sufficiently profitable niche warranting the development of a program that the researcher can then buy to complete his investigations; all too frequently he must write the program himself. If we wish to view Union College as a leader in scientific research, then we, as a community, need to support software development as part of our research mission.
When a new piece of experimental apparatus is developed, its description may be published along with the experiment it supported, and so it becomes part of the scientific knowledge-base. The same should be true of scientific software: when a quality program is developed, it should be made available to the rest of the community. It takes time and effort to develop a useful piece of software, however, and considerably more time and effort to shape it into something that can be used by others. If we are to promote the free exchange of ideas that is at the heart of any institution of higher learning, we must put a premium not only on written prose but also on computational writing, which involves the concise description of complex methods of manipulating and managing data. Computer programs are a natural language for this, and we need to find a place for them in our evaluation of scholarship.
My own work in this area has centered around the
StageToolssuite of geometry programs that I have been developing over a number years.
An Overview of
The Future of
The Details of