Resources, Readings, and References#
Textbooks and Resources#
![]() |
![]() |
![]() |
There is no formal textbook, but the following will be useful. These are either available electronically from the WSU Library, or on reserve:
- [Thomas and Hunt, 2019]
D. Thomas and A. Hunt: “The Pragmatic Programmer” (2019). Many of the core concepts of this course follow the principles laid out in this textbook, which espouses concepts like DRY (Don’t repeat yourself), Tracer Bullets, MVP (Minimum Viable Product) etc. Although expressed in terms of software development, many of these principles can help you improve your research. We will start each class discussing a topic from this book, as listed in the Course Timeline.
- [Gezerlis, 2020], [Gezerlis, 2023]
A. Gezerlis: “Numerical Methods in Physics with Python” (2023). This covers many useful algorithms with a focus on implementing them from scratch rather than using them as black-box routines. The 2nd edition has a few extra useful algorithms.
- [VanderPlas, 2016]
J. VanderPlas: “Python Data Science Handbook” (2016). More focused on data analysis, but Jake provides a very good description of techniques like plotting and animation. I have learned many of my skills from him and his blog Pythonic Perambulations.
- [Graham et al., 1994]
R.L. Graham, D.E. Knuth, and O. Patashnik: “Concrete Mathematics: A Foundation for Computer Science” (1994). A fabulous resource for discrete mathematics. This book systematically develops calculus for finite difference operators. If you need to know the analytic form for a series, this is the place to look.
- [Press et al., 2007]
Numerical Recipes: The Art of Scientific Computation is somewhat of a bible for scientific computing, and provides a rather complete reference of useful algorithms. You should be able to read any of the sections in this book as needed, and implement your own solution based on the content. Note: I do not personally use any of their actual code, but find the references and descriptions invaluable to be able to write my own solutions.
Additional readings will be assigned as needed. See References for details and additional resources.
Bayesian Analysis#
For a serious introduction to Bayesian Analysis, read sections I through III.A of [von Toussaint, 2011].
Gaussian Processes#
[Gelman et al., 2013]: A good comprehensive reference. Available for non-commercial from the author’s webpage.
[Melendez et al., 2019]: An application to nuclear theory with associated code [
gsum][].[Rasmussen and Williams, 2006]: Another nice book that formed the basis for the implementations in [scikit-learn][].
Linear Algebra#
Essence of linear algebra: A great set of highly visual videos by 3Blue1Brown getting you up to abstract vector spaces.
MIT 18.06 Linear Algebra: A set of video lectures and accompanying material for the MIT Linear Algebra course.
Qiskit Linear Algebra: A short introduction that is part of the Qiskit platform.
Appendix A of [Mermin, 2007] has a nice short review of Dirac notation.
Somewhat related is
[Moler and Loan, 2003]: 19 Dubious Ways to Compute the Matrix Exponential is fun way to see how a given scientific problem – computing \(e^{\mat{A}}\) – can be solved with many different approaches, each having their own advantages and disadvantages.
Matrix Cookbook#
The Matrix Cookbook [Petersen and Pedersen, 2012] contains many useful formulae for working with matrices (without proof). This version is rather old, so the following updates may also be useful:
Matrix Forensics: An open-source repository with a compendium of formulae.
Floating Point Numbers#
[Goldberg, 1991], “What every computer scientist should know about floating-point arithmetic” is a bit challenging, but contains all of the details you might need to understand about how numbers are represented on computers.
Programming Problems#
Solving problems is a great way to test and improve your programming abilities. Here are some collections of fun and interesting problems.
Project Euler: Mathematical problems (often number theory) that often lend themselves to programming solutions.
icpc: Past problems from the International Collegiate Programming Competitions are another useful source. These have more of a computer-science focus, but can be useful practice for some interviews.
leetcode: Mostly CS and interview types of questions. One nice feature is that it has solutions in multiple languages, thus it acts as a sort of Rosetta stone.
Learn X in Y minutes#
A nice resource for quickly seeing the syntax and features of various languages. For example:
[Software Carpentry][]#
If you are not familiar with a distributed version control system like [Mercurial][] or [Git][], the [Software Carpentry][] program has two relevant courses you should work through completely:
Software Carpentry: The Unix Shell. Please work-though the course (about 4.5h) if you are not familiar with the Unix command line.
Software Carpentry: Version Control with Git. Please work-though the course (about 3h) if you are not familiar with [Git][].
Tips#
These are specific tips and tricks we will accumulate during the course.
References#
John P. Boyd. Chebyshev and Fourier Spectral Methods. Volume 49 of Lecture Notes in Engineering. Dover, Berlin Heidelberg, 2 edition, 1989. ISBN 978-0486411835. URL: http://www-personal.umich.edu/~jpboyd/BOOK_Spectral2000.html.
Homersham Cox. A demonstration of taylor's theorem. The Cambridge and Dublin Math. J., 6:88–81, 1851. URL: https://catalog.hathitrust.org/Record/000059583.
Lawrence C. Evans. An Introduction to Stochastic Differential Equations. Volume 82 of Miscellaneous Books. American Mathematical Society, 2013. ISBN 978-1-4704-1612-6. URL: https://bookstore.ams.org/mbk-82, doi:10.1090/mbk/082.
Alexander L. Fetter and John Dirk Walecka. Nonlinear Mechanics: A Supplement to Theoretical Mechanics of Particles and Continua. Dover Publications, Mineola, New York, 2006. ISBN 978-0486450315.
Michael McNeil Forbes, Hossein Noorazar, Gary Sandine, and Kevin R. Vixie. Cycles discovery: metrics, sparsity, and needles in a haystack. Cycles Magazine, 50(4):56–84, 2021. URL: https://journal.cycles.org/Issues/Vol50-No4-2021/.
Andrew Gelman, John B. Carlin, Hal S. Stern, David B. Dunson, Aki Vehtari, and Donald B. Rubin. Bayesian Data Analysis. Texts in Statistical Science. Chapman and Hall/CRC, 3 edition, 2013. ISBN 9780429113079. doi:10.1201/b16018.
Alex Gezerlis. Numerical Methods in Physics with Python. Cambridge University Press, 2020. doi:10.1017/9781108772310.
Alex Gezerlis. Numerical Methods in Physics with Python. Cambridge University Press, 2 edition, 2023. ISBN 9781009303866. doi:10.1017/9781009303897.
David Goldberg. What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys, 1991. doi:0360-0300/91/0300-0005.
Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. Concrete Mathematics: A Foundation for Computer Science. Addison-Wesley, 2 edition, 1994. ISBN 978-0-201-55802-9.
Michael Griebel, Gerhard Zumbusch, and Stephan Knapek. Numerical Simulation in Molecular Dynamics: Numerics, Algorithms, Parallelization, Applications. Texts in Computational Science and Engineering. Springer Berlin Heidelberg, 2007. ISBN 9783540680949. URL: http://dx.doi.org/10.1007/978-3-540-68095-6, doi:10.1007/978-3-540-68095-6.
Richard W. Hamming. Numerical Methods for Scientists and Engineers. McGraw-Hill, Inc., New York, NY, USA, 1973. ISBN 978-0-486-65241-2.
Desmond J. Higham. An algorithmic introduction to numerical simulation of stochastic differential equations. SIAM Review, 43(3):525–546, January 2001. URL: http://dx.doi.org/10.1137/S0036144500378302, doi:10.1137/s0036144500378302.
Robert G. Littlejohn, Matthew Cargo, Tucker Carrington, Jr., Kevin A. Mitchell, and Bill Poirier. A general framework for discrete variable representation basis sets. J. Chem. Phys., 116(20):8691–8703, 2002. doi:10.1063/1.1473811.
J. A. Melendez, R. J. Furnstahl, D. R. Phillips, M. T. Pratola, and S. Wesolowski. Quantifying correlated truncation errors in effective field theory. Phys. Rev. C, October 2019. doi:10.1103/physrevc.100.044001.
N. D. Mermin. Quantum Computer Science: An Introduction. Cambridge University Press, 2007. ISBN 978-0-511-33982-0. URL: https://www.cambridge.org/core/books/quantum-computer-science/66462590D10C8010017CF1D7C45708D7, doi:10.1017/CBO9780511813870.
R. A. Millikan. On the elementary electrical charge and the avogadro constant. Phys. Rev., 2(2):109–143, August 1913. doi:10.1103/physrev.2.109.
Cleve Moler and Charles Van Loan. Nineteen dubious ways to compute the exponential of a matrix, twenty-five years later. SIAM Review, 45(1):3–49, 2003. URL: http://dx.doi.org/10.1137/S00361445024180, doi:10.1137/S00361445024180.
Carlos Moreno and Sebastian Fischmeister. Accurate measurement of small execution times—getting around measurement errors. IEEE Embedded Systems Letters, 9(1):17–20, March 2017. URL: https://doi.org/10.1109%2Fles.2017.2654160, doi:10.1109/les.2017.2654160.
Kaare Brandt Petersen and Michael Syskind Pedersen. The matrix cookbook. Technical Report, Technical University of Denmark, 2012. URL: https://www2.imm.dtu.dk/pubdb/pubs/3274-full.html.
William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery. Numerical Recipes: The Art of Scientific Computing. Cambridge University Press, third edition, 2007.
Carl Edward Rasmussen and Christopher K. I. Williams. Gaussian Processes for Machine Learning. MIT Press, 2006. ISBN 9780262256834. URL: https://mitpress.mit.edu/books/gaussian-processes-machine-learning, doi:10.7551/mitpress/3206.001.0001.
David B. Stewart. Measuring execution time and real-time performance. In Proc. Embedded Syst. Conf. (ESC), volume 141, 1–15. Boston, MA, USA, 2001.
David Thomas and Andrew Hunt. The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition. Addison-Wesley Professional, 2 edition, 2019. ISBN 9780135957059.
N. G. van Kampen. Stochastic Processes in Physics and Chemistry. North-Holland Personal Library. Elsevier Science & Technology, Amsterdam, 3 edition, March 2007. ISBN 9780080475363. doi:10.1016/B978-0-444-52965-7.X5000-4.
Jake VanderPlas. Python Data Science Handbook: Essential Tools for Working with Data. O'Reilly Media, Incorporated, Sebastopol, UNITED STATES, 2016. ISBN 9781491912140. URL: http://ebookcentral.proquest.com/lib/wsu/detail.action?docID=4746657.
Udo von Toussaint. Bayesian inference in physics. Rev. Mod. Phys., 83:943–999, September 2011. URL: https://link.aps.org/doi/10.1103/RevModPhys.83.943, doi:10.1103/RevModPhys.83.943.


