Singapore: World ScientificPublishing, 2015. - 476p.
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.
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.