The undergraduate educational project seeks to develop a set of educational materials in computational science suitable for undergraduates, advanced secondary school students, as well as teachers at both levels. It is our hope that the materials will be contributed by a wide variety of scientists and educators throughout the country who are drawn from the broad range of disciplines which now encompass computational science. The contributed materials will be collected here at the Ames Laboratory, processed, stored on disc, and then distributed electronically via the Internet using either anonymous FTP or an E-mail fileserver (or both). Via the wide reach of the internet we hope to make the materials available to educators at large research universities, small colleges, and teaching colleges throughout the country.
In order to make these materials as useful as possible to such a wide range of people we believe they should be divided (to as great a degree as can be managed) into self-contained modules. As an overall structure we view the modules as being conceptually arranged into a three dimensional structure.
That is, there will be "primary" modules (denoted in the examples by a square bullet) organized along the lines of one or more "courses" in the fundamentals of computational science (the "horizontal structure") with the first course planned being an introductory one aimed at the college freshman level. These primary modules will be pedagogic in nature, probably containing interactive tutorials in, say, MapleVor Mathematica. Examples of such primary modules would be "Introduction to Procedural Programming" (i.e. C, FORTRAN or PASCAL) or "Interfacing Symbolic Algebra with Fortran".
In addition, the major pegagogic modules will be augmented by many smaller modules of two types: (A) case studies, examples, and applications (denoted by a diamond bullet) drawn from as wide a variety of (relevant) fields as possible, and (B) broad conceptual descriptions (denoted by a circular bullet) of how the current subject relates to the various "guiding themes" of computational science, such as high performance computing or computer visualization. The case studies are meant to provide "depth" to each subject through the study of specific examples, and should be quite self-contained, providing an intoduction to the example, necessary background information, and perhaps some fraction of the code necessary for their use. The broad descriptions should be designed to provide "breadth" by showing how common themes course through the various subjects, i.e. they should help convey the fact that computational science is truly a subject in and of itself. These modules should provide students
The nature of the case studies is clearly quite open ended, encompassing fields as wide ranging as physics, psychology, and economics, but the "broad concepts" are fewer in number, and to this point we have identified the following (in no particular order):
Each of the support modules, whether of the broad description type or the case study one, should be designed to have a clear set of prerequisites (i.e. a "vertical structure"), much of which can be obtained by merely tracing up the vertical structure to the "root" primary module. As part of the "processing" of modules before inclusion in the project we hope to provide a list of prerequisites.
Finally, each module will contain cross-references to other modules treating related topics (horizontal and vertical are taken, I guess that leaves "depth"). Two examples of this "spatial structure" are provided in the accompanying figures. Figure 1 presents an outline of the freshman course (based in large part on the syllabus of the course Chris Johnson and Joe Zachary plan for this year at Utah) in terms of the modules described above. The specific "circle" and "diamond" modules will be determined as the project progresses. Figure 2 shows some examples of the possible modules which might be added under the primary module "Introduction to Symbolic Manipulation Packages."