How to Teach and Apply Computational Science
This article was originally published in the CSC News magazine (Vol. 10, No 3, September 1998).
Computational science is a method for doing research with computational models and computers. Computational methods are indispensable in science and technology. In physics, for example, there are already dozens of textbooks and guides which teach computational methods. Even outside the natural sciences computers and simulations are used increasingly often -- perhaps within a few years there will be a discipline called computational sociology, as an extreme example.
Working in teams
Do we need a separate discipline called "computational science"? Some people oppose this idea, some think it is a necessary step. In any case, the research teams of the future will be cross-disciplinary: some know the experimental setup, others develop the theory, and some experts work with computer models. This combination of skills makes it possible to work on problems which can not be tackled otherwise.
The research work of the future involves team work with many kinds of specialists. We should remember the needs of team work when planning the basic education of scientists and engineers. In fact, CSC is currently forming a task force to find out what is the status of education in computational science in Finland.
For example, solving difficult fluid dynamics problems involves engineers and scientists, mathematicians and numerical analysts, computer scientists and visualization experts. This combination makes it possible to find and formulate the problem, to use analytic and numerical methods to solve the problem, and to write the necessary software. The research project includes designing the algorithms, parallelizing the program, optimization the code, and testing the results. Of course, nowadays you also need to write a graphical user interface for the software package.
If this research group calls itself a computational science group, or a fluid dynamics group -- it doesn't matter. What matters is the framework which connects the theoretical and computational models to the real-world phenomena.
There are already several laboratories in Finnish universities titled "computational technology" or "computational science". All of these have their own agendas and their specific strengths. However, in the near future the computational methods will be commonplace in all areas of science, and it will be increasingly hard to distinguish oneself simply by the use of computers and numerical methods. The most important aspect will be the ability to combine the expertise so that new kinds of results are achieved.
The wider use of numerical methods and computing poses challenges for education. To work in a team, all the members should know the basic terminology of the other experts -- or to be ready to learn it by painful experience. But not all need to be simultaneously experts on numerical methods, program development, and the mating rituals of rodents.
If the members of the research group are willing to co-operate, and know how to formulate their ideas so that the others can work on them, the group has already passed the first obstacles. But if the expectations are unrealistic -- too low or too high -- this may cause the project to be a failure. So, the basic education of a scientific or engineering discipline should cover the elementary skills in mathematical modelling, numerical methods, and programming. This will help to smooth the way to successful collaboration. Mathematics as technology transfer
Mathematics is the ultimate in technology transfer. Advances in one area can result in great strides in another. A method for solving fluid dynamics problems may later be adapted for solving electromagnetic problems, for example. Or the methods for solving war-time transportation problems may be used for scheduling the classes in schools, a much more peaceful application.
Because mathematics is universal, mathematicians should be ready to increase co-operation between scientific disciplines. Why do numerical analysts only solve "mathematical problems", not the problems of the biosciences, for example?
One way of transferring mathematical knowledge is by embedding it in a software package. If the package is well-designed, it is possible to build on this knowledge to solve increasingly hard computational problems. So, when you think about mathematical technology transfer, don't think small: if your methods are good, someone may be interested in using them for problems which are much harder than those which are solved today.
When you start to think big, you start to think about collaboration as well. It takes years to build the needed expertise on, for example, numerical methods, and it is too late to start training when the research project gets the funding. Therefore, we should make sure that the education today matches the needs of the future as well as possible.
Developing scientific software
There is a huge market for word-processing software, entertainment software, etc. -- and we all know this requires investment which only the big software companies can afford. Development of scientific software is no less difficult. However, sometimes it seems that development of scientific software is thought to require very little resources. This approach usually ends up producing software which is not scalable and not reliable outside the original problem area.
To solve the scientific challenges of the future, we should invest in the development of scientific software. The hardware will get faster, but the problems will grow harder even faster. And the possibility of error will also increase. Therefore, we need cross-disciplinary development teams. We should also arrange for experimental verification of the software and the mathematical models we use. This way, the software package becomes a tool for generating new science -- and perhaps also new technical inventions. Those who get there first will benefit the most.
Meteorology is one example of integrating scientific research and program development. It is almost unthinkable that meteorological research would consist of only measurements, of only theory, or of only computations. In reality, all of these aspects are tightly coupled. This will be the way of doing research in most areas of science in the future.
Of course, science will be a minor part of a software development project, even if we are developing scientific software. Most of the work is needed for communication between the software modules, pre and post processing of data, user interfaces, making the software user-friendly, and writing the documentation and user guides for the package. Using research-level scientists for these tasks may not be cost-efficient. The scientist may even lose motivation by working in areas outside his primary interests.
Verifying the results
One side-effect of the increasing use of computers is the increasing mis-use of computers. The real world is complex and suprising, and our intuition easily gets it wrong, producing models which do not match reality. Because of the ease of use of the sophisticated software packages we now use, we may forget that simulations are not the whole truth -- and sometimes not a truth at all. We should never let us believe that a simulation is the real thing. Otherwise we end up just playing computer games with our models and methods. Often, fortunately, our models and simulations help us to understand the phenomena we are researching, even though these tools are not the same as the reality itself.
When teaching computational methods, it is a big mistake to only solve small examples and easy problems. One should not give the students a false confidence -- nor should we make the learning unnecessarily difficult.
If the purpose of a course is to teach the basics of numerical methods to non-experts, so be it. But even in this case the possibility of getting wrong results should be emphasized. The students should not believe software packages are pocket calculators giving results which are precise to ten significants digits.
We need to anchor ourselves on the experimental results, and verify our simulations as well as we can. This way we can find new truths to test with experiments and computer simulations. Sometimes the effort pays back handsomely, and the world is richer for it.
CSC has published a book about computational science for the general audience. The book is written in Finnish and titled "From the Big Bang to Mobile Phones" (Alkuräjähdyksestä kännykkään -- näkökulmia laskennalliseen tieteeseen). See the Web page http://www.csc.fi/oppaat/lask.tiede/ for more details.