Active netlib: an active mathematical software collection for inquiry-based computational science & engineering education

A core subject in the undergraduate education of application scientists and engineers is the use of mathematical software to solve computational problems. To make effective use of mathematical software, application developers need a basic understanding of the underlying numerical methods and enough knowledge to be able to choose an appropriate solver, parameterize it correctly, and validate the computed results. Correct results are of course required, but good computational performance is desired as well.Most application scientists have neither the time nor the interest to read the current literature in numerical analysis. They solve numerical problems by relying on the methods and programs they learned about in previous coursework. This tendency has the unfortunate consequence that new methods with improved functionality and/or efficiency may go unused by practicing engineers. Mathematical subroutine libraries can be highly complex. Few application scientists understand how they really work, and the usual practice is to treat the subroutines as "black boxes". A black box is a piece of software that can be used without knowledge of its inner working; the user supplies the input, and the output is more or less assumed to be correct. However, there are a number of pitfalls in numerical computation (e.g., roundoff error, ill-conditioning, non-convergence). Application engineers need enough understanding of the underlying numerical methods to be able to detect and diagnose problems that occur and to modify or customize the methods if necessary. This need is especially crucial in the use of iterative methods to solve large sparse linear systems, where the problem may need to be properly preconditioned in order for convergence to occur and where the appropriate method to employ depends on the nature of the problem being solved.A large amount of mathematical software is both commercially and freely available. However, not all the software that is available is of high quality. It can also be difficult to locate the appropriate software by using web search engines, since the descriptions available for searching may be lacking or may not match the vocabulary used by the searcher. A good solution to these problems is to have experts in the field of numerical analysis maintain a moderated collection of high quality software which is organized and cataloged with appropriate metadata to enable easy searching.The Netlib mathematical software repository is such a collection that has been contributed to and managed by the numerical analysis community for the past fifteen years.To address the aforementioned problems, Active Netlib provides an active collection of high-quality mathematical software resources in the context of an inquiry-based learning environment for computational science and engineering education. The Netlib collection is being extended in a number of ways to support the goals of this project. The NetSolve client-server system for accessing hardware and software resources over a network provides an active interface to the contents of Netlib. By making the subroutines housed in Netlib available over the network on computational servers, NetSolve enables access to up-to-date mathematical software from a variety of client interfaces running on users' workstations, without requiring the users to download and install the software themselves. Use of NetSolve seamlessly maintains the currency and usability of the content as the underlying hardware, operating systems, and software evolve. Furthermore, the NetSolve adaptive solver interface guides the user in selecting appropriate software, in setting parameters correctly, and in interpreting numerical results.The Netlib collection is being further extended through use of the Repository in a Box (RIB) toolkit, which enables an individual or organization to set up and maintain a repository that interacts with other RIB repositories. RIB will allow the Netlib collection to be selectively mirrored and contributed to by all project participants.In summary, the goals of the Active Netlib project are the following:Remote executable content with highly interactive user interfacesResource users becoming resource providersA growing network of software repositories and computational services drawn upon and contributed to by researchers, educators, and students.For more information, see the Active-Netlib home page at http://icl.cs.utk.edu/active-netlib/.