Writing Scientific Software
A Guide to Good Style
-
By Suely Oliveira
University of Iowa
By David E. Stewart
University of Iowa
-
Publisher: Cambridge University Press
Print Publication Year:2006
Online Publication Date:January 2010
Online ISBN:9780511617973
Hardback ISBN:9780521858960
Paperback ISBN:9780521675956
-
Book DOI: http://dx.doi.org/10.1017/CBO9780511617973
Subjects: Scientific Computing, Scientific Software , Numerical analysis and computational science
The core of scientific computing is designing, writing, testing, debugging and modifying numerical software for application to a vast range of areas: from graphics, meteorology and chemistry to engineering, biology and finance. Scientists, engineers and computer scientists need to write good code, for speed, clarity, flexibility and ease of re-use. Oliveira and Stewart's style guide for numerical software points out good practices to follow, and pitfalls to avoid. By following their advice, readers will learn how to write efficient software, and how to test it for bugs, accuracy and performance. Techniques are explained with a variety of programming languages, and illustrated with two extensive design examples, one in Fortran 90 and one in C++: other examples in C, C++, Fortran 90 and Java are scattered throughout the book. This manual of scientific computing style will be an essential addition to the bookshelf and lab of everyone who writes numerical software.
Reviews:
- "...That mechanical engineer would probably do better to pick up Oliveira and Stewart's Writing Scientific Software: A Guide to Good Style, whose subtitle could equally well have been "Things Computational Scientists Ought to Know". The chapter titles are a good summary of its contents: basics of computer organization, software design, data structures, design for testing and debugging, global vs. local optimization, memory bugs and leaks, Unix tools, and so on. The writing is clear (though more diagrams wouldn't have done any harm), and the case studies at the end are well thought out. The authors clearly know their intended audience well."
Greg Wilson, Dr. Dobb's Journal - "A top pick for college libraries." - California BookwatchDiane C. Donovan, Midwest Book Review
-
pp. i-iv
-
pp. v-viii
-
pp. ix-xii
-
Part I - Numerical Software: Read PDF
pp. 1-2
-
1 - Why numerical software?: Read PDF
pp. 3-7
-
2 - Scientific computation and numerical analysis: Read PDF
pp. 8-29
-
pp. 30-35
-
4 - Famous disasters: Read PDF
pp. 36-38
-
pp. 39-42
-
Part II - Developing Software: Read PDF
pp. 43-44
-
6 - Basics of computer organization: Read PDF
pp. 45-56
-
pp. 57-89
-
pp. 90-117
-
9 - Design for testing and debugging: Read PDF
pp. 118-142
-
pp. 143-146
-
Part III - Efficiency in Time, Efficiency in Memory: Read PDF
pp. 147-148
-
11 - Be algorithm aware: Read PDF
pp. 149-155
-
12 - Computer architecture and efficiency: Read PDF
pp. 156-186
-
13 - Global vs. local optimization: Read PDF
pp. 187-194
-
14 - Grabbing memory when you need it: Read PDF
pp. 195-207
-
15 - Memory bugs and leaks: Read PDF
pp. 208-216
-
pp. 217-218
-
16 - Sources of scientific software: Read PDF
pp. 219-222
-
pp. 223-236
-
Part V - Design Examples: Read PDF
pp. 237-238
-
18 - Cubic spline function library: Read PDF
pp. 239-261
-
19 - Multigrid algorithms: Read PDF
pp. 262-286
-
Appendix A - Review of vectors and matrices: Read PDF
pp. 287-291
-
Appendix B - Trademarks: Read PDF
pp. 292-292
-
pp. 293-298
-
pp. 299-303



