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.

weisscharlesj weisscharlesj Last update: Feb 24, 2024

Scientific Computing for Chemists with Python

An Introduction to Programming in Python with Chemical Applications

The following is the textbook used for the Scientific Computing Chemists course 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, account for new software versions, and add new content. The most recent version can be viewed using the link above or downloaded or forked above along with Jupyter notebooks containing all code in the book. Reports of errors and information on how people are using this book are always welcome.

The book is copyright © 2017-2023 Charles J. Weiss is are released under under the CC BY-NC-SA 4.0. All files with or associated with the book are also copyright and released under the CC BY-NC-SA 4.0 license unless otherwise noted (see README.txt files for more information).

Answer keys to exercises are available to instructors upon request by emailing me using your school email address to request a copy. The answer keys are © Charles J. Weiss and are not released under a Creative Commons 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
  • Chapter 14: Optimization and Root Finding
  • Chapter 15: RDKit for Cheminformatics
  • Chapter 16: Bioinformations with Biopython and Nglview

Interested in Using This Book for Your Course?

First, I'd love to hear how people are using this book. Second, this book may receive updates with additional content, clarifications, and corrections, so if you want a static copy of the book to use during the academic term, below are multiple options.

  1. (Simpler) Download PDF copies of the chapters to share with your student - at the top right of each chapter page, click the download button and select the PDF option.

  2. Fork this repository to your GitHub page and have your students use your copy - create a GitHub account, fork this repository, build the book using Jupyter Book, and have you students use your copy on your GitHub page. You can update your fork of this repository at any time to received any updates, and unlike a PDF copy, this approach makes it easier for students to copy-and-paste code from the chapters. The approach does require the user be confortable using git and GitHub.

Citing this Book and Curriculum

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

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

Subscribe to our newsletter