/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.

Primary LanguageJupyter Notebook

Scientific Computing for Chemists

The following is a text used for a Scientific Computing chemistry course (J. Chem. Educ. 2017, 94, 592-597 DOI: 10.1021/acs.jchemed.7b00078 and J. Chem. Educ. 2017, 94, 1904-1910 DOI: 10.1021/acs.jchemed.7b00395) intended to teach undergraduate chemistry students basic coding in Python and Jupyter Notebooks and advanced tools for processing, visualization, and analysis of digital data. A chapter outline is provided below. This text assumes that the students have no prior programming experience and have 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.

Current Version, PDF

The document is copyright © 2020 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

An article describing the structure, content, and philosophy behind this textbook, A Creative Commons Textbook for Teaching Scientific Computing to Chemistry Students with Python and Jupyter Notebooks, has been published in the Journal of Chemical Education DOI: 10.1021/acs.jchemed.0c01071.