The need for more rigorous software verification in science is well known. The presence of software errors can seriously undermine results leading to paper retractions, bad policy decisions, and even catastrophic technological failures. Often the responsibility is placed on the programmer, but simply trying to be more careful is not enough. There is a wealth of research in computer science aimed at automating testing and verification, yet little of this has crossed over into practice in the sciences. In April 2016, we held a meeting in Cambridge on Testing and Verification for Computational Science to bridge the gap between computer scientists and natural scientists concerned with software correctness.
Before computer science became a discipline, computing existed mainly as a service to science, providing fast and accurate calculation. As computer science developed, it pulled in philosophy, logic, mathematics, semantics, and engineering but has largely moved away from its roots in science. This has lead to a gulf between computer science and the natural and physical sciences. While there have been many advances in program verification, little of this is applied to address the correctness of scientific software. This meeting was organised…Continue Reading