I. Introduction II. Introduction III. A Definition of Computation Science IV. How Does Computational Science Affect You? V. Computational Science Growing Fast VI. The Future of Computational Science VII. Computers Have A Rich History a. Some Links to The History of Computers b. You and Your Computer VIII. Computational Science Programs for Desktop Computer a. Stella b. NIHImage c. MathLab d. Mathmatica IX. Roll Your Own a. Programming the Computer to Solve b. Step-by-Step X. UNIX XI. C/C++ XII. CGI XIII. JAVA XIV. PERL XV. Fortran XVI. Open GLOn The Edge of Discovery An Interactive guide to Problem Solving Through Computational Science
Computational science is a relatively new discipline, and there is currently no consensus on a precise definition of what computational science actually is. In broad terms, computational science involves using computers to study scientific problems and complements the areas of theory and experimentation in traditional scientific investigation.
Computational science seeks to gain understanding of science principally through the use and analysis of mathematical models on high performance computers. Computational science has emerged as a powerful and indispensable method of analyzing a variety of problems in research, product and process development, and many aspects of manufacturing.
Computational simulation is being accepted as a third methodology in engineering and scientific research and fills a gap between physical experiments and analytical approaches. These simulations provide both qualitative and quantitative insights into many phenomena that are too complex to be dealt with by analytical methods or too expensive or dangerous to study by experiments. Many experiments and investigations that have traditionally been performed in a laboratory, a wind tunnel, or the field are being augmented or replaced by computational simulations. Some studies, such as nuclear repository integrity and global climate change, involve time scales that preclude the use of realistic physical experiments. The availability of high performance computers, graphic workstations, and high speed networks, coupled with major advances in algorithms and software, has brought about a revolution in the way scientific and engineering investigations are carried out.
*Adventures in Super Computing
Until recently Computational Science was only available to those who had access to supercomputers, usually at large Research Universities or government sponsored programs. This was, and is, because large simulations require a great deal of computational capacity. Today, significant reduction in the cost of workstations, increase in the computing power of desktop computers, increasing availability of network access, and efforts by the Super Computing community and the National Science Foundation computational science is moving rapidly into the K-12 world.
Computational Science is a powerful tool that allows the learner to create environments that were heretofore impossible or impractical. It also can allow the user to visualize that which is hard or impossible to see in the mind or even draw on paper.
For example scientist at the University of Minnesota Laboratory for Computational Science and Engineering have devolped a PowerWall. to aid in the analysis of large sets of data. Now young learners at the high school level can create computer models to study a wide range of science and technology topics.
Many programs are now in place to educate classroom teachers about Computationl Science and its role in secondary education. In Minnesota the The Envision It project is providing teachers a two year experience in the uses of Computational Science and the SpECS project at the University of Minnesota is putting high performance computers, and training, in the hands of high school teachers and students. Colorado has a yearly Computational Science Fair.
Note: Need to do some on-line research here to add programs and web sites
With the growing use of computers in the k-12 education world, the continuing decline in the cost of sophisticated computer based technologies, the ongoing support of the National Science Foundation and major research Universities for classroom teacher training, computational science will become a major component of science and technology curricula.
Using the Computer
Although the history of the modern electronic computer is relatively short the idea of using calculating machines to aid in solving computational problems is quite old. Perhaps the oldest example of a calculating machine is the abacus thought to be thousands of years old.
Early mathematics was devoted to practical applications such as calculating land area, tracking animals, monitoring expenses, or measuring wealth. Around 1620, a German scientist named Wilhelm Schickard invented the first mechanical calculator capable of simple arithmetic. Most of Schickards work was lost during the 30 Years War. Around the same time Blaise Pascal a French Philosopher developed a mechanical adding machine. Later in the 17th Century a German Mathematician named Gottfried Leibniz developed a much more sophisticated calculating machine capable of multiplication and division as well as addition and subtraction.
The Industrial Revolution brought with it new technologies that created new possiblities for developing machines that might be capable of sophisticated calculations under their own power. Charles Babbage, a British mathamatician designed two different computing machines during his liftime. The first he called The Difference Machine which he designed to create tables of mathematical functions. Babbage was never able to actually build the Difference Machine...it was 30 years after his death before it became a reality. His second computing device the "Analytical Machine" was Babbages lifelong dream but also remained incomplete at the time of his death in 1871.
The Analytical Machine was, and is, historically important because Babbage concieved many essential features found in modern computers. Among those and of most importance the "Analytical Machine" was concieved to be a "general purpose" computing machine capable of performing many different functions depending upon how it was programmed. This programming was accomplished by using cards puched with holes that could be read by the machine. Punched cards or paper tape became an often used method of programming or inputting data to modern computers.
Babbages vision of a programmable computer did not become a reality until the late 1930s when John Atanasoff and one of his students, John Barry developed the prototype of the first electronic computer at Iowa State University in Ames Iowa. This prototype consisted of 300 vacuum tubes and was completed in 1942. Work on the Atanasoff computer was inturrupted by the Second World War and was never continued.
The first large scale computer was the ENIAC, an acronym for electronic numberical integrator and computer. ENIAC was completed in 1946 at the University of Pennsylvania. ENIAC contained more than 18,000 vacuum tubes and occupied a 30 by 50 foot room.
If you are interested in more information about the ENIAC story you can click here. For more reading on the history of computing:
Some Links to the History of Computers.
A Short History of The Computer. History of Computing Information. The History of Computing. Apple History Apple II History The Making ofSilicon Valley: A One Hundred Year Renaissance
You and Your Computer
For those who are new to computing an introduction to the computer is desirable.
New computer users often, actually almost always, have the perception that a computer is an intelligent device. In reality just the opposite is true. The computer is a machine or tool that only does what a human tells it to do. Have you ever heard someone blame some mistake on a "computer glitch?" Billing errors, late pay checks, inaccurate lists, are often blamed on "computer glitches." In fact the computer did not make a mistake, it did just what it was told to do by a human. In reality it was probably a programming error, a mistake in the list of instructions given to the computer that caused the "computer glitch."
What a computer does it does well and, very importantly, it does it quickly. It is not necessary for programmer to be a computer technician but...the more you know about computers and networks and how they operate the better programmer you will be. This plus your ability to "speak the language" (know the meaning of all those acronyms} will make you a knowledable and literate computerist.
Using Your Computer
There are a number of off-the-shelf programs that can be classified as computational science programs. They range from the complicated on one end to the less complicated more familiar interfaces on the other end. Most teachers will find that Mathmatica and MatLab have a very steep learning curve and will be a challange to the majority of their students. Stella and NIHImage probably will gain more accepance from high school students. All four are powerful learning environments that serve different purposes in the computational science world.
Stella
NIHImage
NIH Image is a public domain image processing and analysis program for the Macintosh. NIH Image can acquire, display, edit, enhance, analyze and animate images. It reads and writes TIFF, PICT, PICS and MacPaint files, providing compatibility with many other applications, including programs for scanning, processing, editing, publishing and analyzing images. It supports many standard image processing functions, including contrast enhancement, density profiling, smoothing, sharpening, edge detection, median filtering, and spatial convolution with user defined kernels.
Image can be used to measure area, mean, centroid, perimeter, etc. of user defined regions of interest. It also performs automated particle analysis and provides tools for measuring path lengths and angles. Spatialvide real world area and length measurements. Density calibration can be done against radiation or optical density standards using user specified units. Results can be printed, exported to text files, or copied to the Clipboard.
A tool palette supports editing of color and gray scale images, including the ability to draw lines, rectangles and text. It can flip, rotate, invert and scale selections. It supports multiple windows and 8 levels of magnification. All editing, filtering, and measurement functions operate at any level of magnification and are undoable. Taken from the NIH Imager Home Page.
From this writers persepective NIHImage is a powerful learning environment and perfect tool to introduce young learners to computational science. It can be used as part of introductory computer classes as well as a suppliment to science and technology classes at all levels.
Some additional sites about Image Processing you might find useful:
* NIH Image: An Introduction and Tutorial
* Quantitative Image Analysis by NIH-Image
* Image Analysis Links
MatLab
Mathmatica
Programming the Computer to Solve Problems
It could be said that the most powerful learning environment for young computational scientists is computer programming. Computer programing is pure problem solving activity and envolves the learner in all aspects of the problem.
This on-line manual is intended to introduce the high school learner to problem solving using the computer and problem solving using a computer always involves programming.
All of the disciplines of Science and Technology use the problem solving process in one form or another. The problem solving process is inveriably defined by a number of logical steps. Each discipline using a problem solving process defines these steps using slightly different terms but in the end they are very similar.
Step-By-Step
Traditionally the problem solving process has certain elements.
*A statement of the problem or recognition of need.
*A list of criteria to be fulfilled or research of the stated problem.
*A list of proposed solutions.
*The selection of the best solution from the proposed list.
*Construction of a prototype of the solution.
*Adjustments to the solution, if needed. (feedback)
Computer Science, the science of solving problems using the computer, uses algorithms to solve problems