Git Product home page Git Product logo

weisscharlesj / scicompforchemists Goto Github PK

View Code? Open in Web Editor NEW
177.0 11.0 66.0 319.59 MB

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.

Jupyter Notebook 100.00% Python 0.01%
chemists nmrglue scipy numpy python jupyterlab jupyter-notebooks chemistry computing scientific-computing science chemical simulations jupyter-lab biochemistry textbook book computer-programming

scicompforchemists's Introduction

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 ideally 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, 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-2024 Charles J. Weiss and is 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

scicompforchemists's People

Contributors

weisscharlesj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scicompforchemists's Issues

6.2.2 Weighted Averages

Thank you for this great resource!

I think there is a small error in the Weighted Averages section (pg 182) the equation is divided by 5 but I think this should be 9 (and in fact the python code uses 9 so I think the actual python code is correct).

Thanks again.

This is AWESOME

This is super awesome Charles - You ROCK!
and under a CC license

Great job - you are winning!

Incorrect element data in Chapter 10

I'm not sure where the element data for chapter 10 came from, but Tl-Rn are incorrectly categorised as d-block elements. As I'm sure you know, they should be p-block elements. I wouldn't have noticed if the graph in the chapter didn't show a d-block gas (see attached graph from Chapter 10.3.5)

If you left it incorrect intentionally for demonstrative purposes, it may be worth leaving a note saying as much. Otherwise, if you like I can submit a PR and fix it up?

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.