Teaching material on scientific computing has traditionally been very focused on the mathematics and the applications, while details on how the computer is programmed to solve the problems have received little attention. Many end up writing as simple programs as possible, without being aware of much useful computer science technology that would increase the fun, efficiency, and reliability of the their scientific computing activities. This chapter demonstrates aseries of good practices and tools from modern computer science, using the simple mathematical problem u′=−auu′=−au, u(0)=Iu(0)=I, such that we minimize the mathematical details and can go more in depth with implementations. The goal is to increase the technological quality of computer programming and make it match the more well-established quality of the mathematics of scientific computing. The conventions and techniques outlined here will save you alot of time when you incrementally extend software over time from simpler to more complicated problems. In particular, you will benefit from many good habits: · new code is added in amodular fashion to alibrary (modules), · programs are run through convenient user interfaces, · it takes one quick command to let all your code undergo heavy testing, · tedious manual work with running programs is automated, · your scientific investigations are reproducible, · scientific reports with top quality typesetting are produced both for paper and electronic devices.
CITATION STYLE
Langtangen, H. P. (2016). Scientific software engineering. Lecture Notes in Computational Science and Engineering, 110, 127–187. https://doi.org/10.1007/978-3-319-29439-1_5
Mendeley helps you to discover research relevant for your work.