Computational Science is a new field that is rapidly emerging out of collaborative research by teams of mathematicians, computer scientists, and scientists, covering a wide variety of disciplines from the physical and health sciences. Rather than viewing Computational Science simply as potential applications of core subjects in their disciplines, mathematicians and computer scientists see these collaborative projects as a source of new algorithms and ideas that will extend and enrich those fields. Scientists also see Computational Science as a new endeavor, taking a place along side theoretical science and experimental science as a fundamental new mode of scientific enquiry.
The Computational Science Education Project has brought together dozens of researchers and educators from colleges, universities, government agencies, and corporations from all over the U.S. . The project is sponsored by the U.S. Department of Energy, which, as a major supporter of computational science research, has a stake in educating new generations of computational scientists. The authors are mostly volunteers who graciously donated their time to write case studies and background material for inclusion in the first draft of the text.
We hope to make this text a living document, in more ways than one. The material will be changing as new authors are recruited and more case studies and methodologies are added to the text, and as new developments in mathematics, computer science, and the sciences refine the ideas described in current chapters. We will also try to keep the sections on computer technology up to date as new products (hardware and software) are made available to Computational Scientists.
But most of all the presentation of the material will be dynamic. Beginning with this first draft, we want the book to explore concepts in multimedia presentation and hypertext organization. As students read about vector processors and see a remark about interleaved memories, they should be able to bring up on the screen a small window that summarizes the key points about interleaved memories. As they read about scientific visualization they should be able to start up a visualization package to see first-hand what is involved in displaying huge volumes of data (which is included as part of the book). As they read case studies they should be able to click on part of an equation to see what a variable means, click on a word in the text to bring up a window that explains prerequisite concepts, click on parameters used to display a graph and see the shape of the curve change as input parameters vary, or navigate through a complex abstract image using state of the art visualization software.
In order to capture the notion that this text will be an interactive, dynamic presentation that depends on computer technology as much as its subject does, we have taken to calling it an e-book, for electronic book.
For this first draft our vision has far exceeded our ability to gather and arrange the material. We have concentrated instead on deciding what subjects to include and what topics are essential for the first courses to use the e-book in the Fall of 1993. In the meantime we are exploring techniques for building hypertext documents. We have taken a few tentative steps in this direction by building ``prototypes'' of interactive chapters to use an html browser as an interface to a new network application known as the World Wide Web (WWW). One of the reasons we chose WWW is that it will allow us to maintain chapters, software, and data sets in a central location while allowing students to copy things they need interactively and without even knowing (or caring) that the information is being retrieved from a location on the network halfway across the country.
Our goal has been to produce a text that would be suitable for advanced undergraduate or beginning graduate students in the physical or life sciences. We have assumed students have had some programming experience, preferably using C or Fortran, the two languages most commonly used in scientific applications. A strong background in computer science is not necessary; the equivalent of a one-year introductory course on programming and algorithms should be sufficient.
The material is organized in three main sections. Part A is an overview of the field and a discussion of background material that should be known by every Computational Scientist. Included in this section are chapters on computer architecture, programming languages, networks, and scientific visualization. These are the ``tools of the trade''. Computational Scientists use supercomputers and other high performance systems because their problems require enormous amounts of computing power. A strong background in computer architecture and programming languages will allow Computational Scientists to make the most of their computing resources by evaluating the performance of programs, reorganizing them for better performance, and realizing the cost in portability when customizing a program for a particular machine. The chapters on networks and visualization emphasize the user's view, and are more "how-to" oriented than discussions of concepts and theory of these two areas.
Part B includes chapters on the basic methods of Computational Science. These include computationally feasible methods for basic methods, such a solving sets of linear equations, and effective algorithms for both parallel and sequential machines.
Part C contains the case studies. The areas represented currently include Bioelectric Fields, Ocean Models, and Particle Transport. In many areas there are two or more case studies, so a course on Computational Physics, for example, could consist of background material and basic techniques from parts A and B followed by two or three case studies in physics. However we think there is tremendous value in reading the case studies from other fields. In addition to broadening one's horizons, we think it will be interesting and instructive for scientists to learn that people in other fields encounter computational problems that are similar to their own. It is from this recognition of common interests and solutions to common problems that the new field of Computational Science will be born.