/SciCompforChemists

Scientific Computing for Chemists text for teaching basic computing skills to chemistry students using Python, Jupyter notebooks, and the SciPy stack. This text makes use of a variety of packages including NumPy, SciPy, matplotlib, pandas, seaborn, NMRglue, SymPy, scikit-image, and scikit-learn.

Scientific Computing for Chemists

The following is the textbook used for the Scientific Computing Chemists course (references below) intended to teach chemists and chemistry students basic computer programming in Python and Jupyter Notebooks and advanced tools for processing, visualization, and analysis of digital data. A chapter outline is provided below. The book starts with a streamlined introduction to Python for chemists followed by introducing powerful computing tools and numerous applications to chemistry. This book assumes that the student or reader has no prior programming experience and has at least one year of undergraduate chemistry background and some very basic spectroscopy/spectrometry (i.e., NMR, IR, UV-vis, and GC/MS) background. All software used (e.g., Python, NumPy, SciPy, etc...) is free and open source software and runs on macOS, Windows, and Linux.

This book is periodically updated to fix typos and to account for new software versions. The most recent version can be downloaded below along with Jupyter notebooks containing all code in the book. Reports of errors and information on how people are using this books are always welcome.

Download Current Version, PDF

Download Jupyter Notebooks and Book Files

The document is copyright © 2021 Charles J. Weiss and is released under under the CC BY-NC-SA 4.0 license. The files associated with the text are under the same license.

  • Chapter 0: Python & Jupyter Notebooks
  • Chapter 1: Basic Python
  • Chapter 2: Intermediate Python
  • Chapter 3: Plotting with Matplotlib
  • Chapter 4: NumPy
  • Chapter 5: Pandas
  • Chapter 6: Signal & Noise
  • Chapter 7: Image Processing & Analysis
  • Chapter 8: Mathematics
  • Chapter 9: Simulations
  • Chapter 10: Plotting with Seaborn
  • Chapter 11: Nuclear Magnetic Resonance with NMRglue
  • Chapter 12: Machine Learning using Scikit-Learn
  • Chapter 13: Command Line & Spyder

Articles on Course and Textbook

Scientific Computing for Chemists: An Undergraduate Course in Simulations, Data Processing, and Visualization J. Chem. Educ. 2017, 94, 592-597 DOI: 10.1021/acs.jchemed.7b00078

Introduction to Stochastic Simulations for Chemical and Physical Processes: Principles and Applications J. Chem. Educ. 2017, 94, 1904-1910 DOI: 10.1021/acs.jchemed.7b00395)

A Creative Commons Textbook for Teaching Scientific Computing to Chemistry Students with Python and Jupyter Notebooks J. Chem. Educ. 2021, 98, 489-494 DOI: 10.1021/acs.jchemed.0c01071.