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 below 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.
Answer keys to exercises are available to instructors upon request. Please email me using your institutional email address to request a copy.
The book and all files/materials included with it are copyright © 2021-2022 Charles J. Weiss and are released under under the CC BY-NC-SA 4.0 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
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