ABSTRACT

Modern programing languages, such as JAVA and C++, require the assimilation of complex concepts, such as classes and object-oriented design. Classes are user-defined variable types with customized functionality, and are the key to object-oriented programing. Object-oriented programing was developed out of the necessity to increase code portability. The availability of classes made it possible to quickly, and smoothly, join together the work of a team of programers to efficiently produce code with millions of lines. Such tasks would be nearly impossible for the old style top-down design, but can be accomplished routinely with the maximized portability that classes afford. On the other hand, it is rare that theoretical and computational chemistry research groups need to delve in to such gargantuan endeavors as a graphical user interface, for example. The majority of the programing is carried out still using top-down design and FORTRAN, as, the numerical tasks are relatively less complicated than an event-driven demon, for example. Most programs we use in our group require less than 10,000 lines of code. The complexity of our work lies in the theory behind the algorithms, rather than in their implementations.