This book teaches you all necessary (problem-independent) tools and techniques needed to implement and perform sophisticated scientific numerical simulations. Thus, it is suited for undergraduate and graduate students who want to become experts in computer simulations in Physics, Chemistry, Biology, Engineering, Computer Science and other fields.
Sample Chapter(s)
Chapter 1: Programming in C (562 KB)
Request Inspection Copy
Contents:
- Programming in C, basics of C++, Python, make, shell scripts
- Software engineering, computational provenance, version management
- Debugging: gdb, memory checking, profiling
- Standard algorithms: iteration, recursion, divide-and-conquer, dynamic programing, backtracking
- Advanced data structures: lists, trees, heaps, graphs
- Libraries: standard C library, STL, GSL, self-written libraries
- Randomness: probability, discrete and continuous random variables, pseudo random numbers, inversion method, rejection method
- Data analysis: estimators, confidence intervals, histograms, resampling, plotting, Chi-squared test, Kolmogorov-Smirnov test, ROC analysis, principal component analysis, data clustering, maximum likelihood, fitting
- Presentation and publishing: gnuplot, xfig, Povray, LATEX
Readership: Advanced undergraduate and graduate students in biology, chemistry, computer science, engineering or physics. Also experienced researchers in these fields who start with computer simulations.
"This unique book is a must-have for any student attempting first steps in computer simulations. Any new student joining my computational physics group is expected to first work through Hartmann's guide before starting a research project."
Helmut Katzgraber
Associate Professor
Texas A&M University
"This book is packed with useful information for everyone doing computer simulations. It would have saved me so much time in my earlier work if it had been available then. It should be compulsory reading for students starting off in the field, but experienced workers will also find useful gems, as I did."
A Peter Young
Research Professor of Physics
University of California, Santa Cruz