View on GitHub

Summer Python workshop 2022

Schedule and course materials and for the workshop

Host institution: Department of Chemistry and Biochemistry,
University of South Carolina, Columbia, SC, USA

Organizers: Michael L. Myrick

Lecturers: R. Patrick Xian (remote), Santosh Adhikari, Sourin Dey

Acknowledgements: Lee Hallman, Christopher A. Sutton


Day 1 – August 3rd

Lecture topics

Python basics, programming environment, software repositories

Lecture materials

Day 1 folder | Download link

References

  1. How to Think Like a Computer Scientist
  2. Software carpentry Python fundamentals
  3. Awesome Python, curated materials


Day 2 – August 4th

Lecture topics

Functional programming and data visualization with Python.
Bring your own data (BYOD), if possible!

Lecture materials

Day 2 folder | Download link

References

  1. Python functional programming tutorial
  2. David Mertz, Functional Programming in Python, O’Reilly (2016)
  3. John D. Hunter, Matplotlib: A 2D graphics environment, Computing in Science and Engineering (2007)
  4. Nicolas R. Rougier, Scientific visualization book (2021)
  5. Matplotlib tutorial
  6. Michael L. Waskom et al., seaborn: statistical data visualization, Journal of Open Source Software (2021)
  7. Seaborn tutorial


Day 3 – August 5th

Lecture topics

Scientific and numeric Python software packages

Advanced programming in Python

Lecture materials

Day 3 folder | Download link

References

  1. Charles R. Harris et al., Array programming with NumPy, Nature (2020)
  2. Numpy tutorial
  3. Pauli Virtanen et al., SciPy 1.0: fundamental algorithms for scientific computing in Python, Nature Methods (2020)
  4. Wes McKenney, Data Structures for Statistical Computing in Python, Proceedings of the 9th Python in Science Conference (2009)
  5. Wes McKenney’s online book Pandas for Data Analysis O’Reilly (3ed 2022)
  6. ODSC pandas workshop tutorials
  7. Scipy tutorial by phoenixNAP
  8. Python operator module tutorial
  9. A somewhat pedantic intro to OOP in Python from Microsoft
  10. Advanced concepts for OOP in Python
  11. Brandon Rhodes, Python design patterns


Day 4 – August 8th

Lecture topics

Common machine learning frameworks in Python

Lecture materials

Day 4 folder | Download link

References

  1. Fabian Pedregosa et al., Scikit-learn: Machine Learning in Python, Journal of Machine Learning Research (2011)
  2. Scikit-learn official tutorials
  3. Andreas Mueller’s scikit-learn tutorial
  4. Adam Paszke et al., PyTorch: an imperative style, high-performance deep learning library, NeurIPS (2019)
  5. Pytorch tutorials
  6. Awesome python machine learning, curated materials


Day 5 – August 9th

Lecture topics

Python packages for molecules and materials, focus on basic data structures and functionalities.

Lecture materials

Day 5 folder | Download link

References

  1. RDKit tutorials
  2. RDKit cookbook
  3. Alexandre Varnek eds., Tutorials in Chemoinformatics, Wiley (2017)
  4. Daniel S. Wigh et al., A review of molecular representation in the age of machine learning, WIREs Computational Molecular Science (2022)
  5. Shyue Ping Ong et al., Python Materials Genomics (pymatgen): A robust, open-source python library for materials analysis, Computational Materials Science (2013)
  6. Pymatgen tutorial videos on its Youtube channel
  7. Ask Hjorth Larsen et al., The atomic simulation environment—a Python library for working with atoms, Journal of Physics: Condensed Matter (2017)
  8. ASE tutorials