# Python Introduction for IMOD OMS^3, 2026

An introduction to [Python](python) for participants in the 2026 [IMOS OMS^3 Summer Course](https://imod-stc.org/project/oms3-course/) at the University of Washington (IMOD is the [NSF Center for Integration of Modern Optoelectronic Materials on Demand](https://imod-stc.org)). This course will provide a foundation to the Python programming language and "ecosystem" specifically, and programming and open-source software more generally.

This site was adapted from [a site created for the Summer Undergraduate Research (SURP) Program](https://uw-apl-surp.github.io/aplsurp-python/) at the University of Washington [Applied Physics Laboratory](https://apl.uw.edu).

## Goals

1. Provide *exposure* to the Python programming language and scientific “ecosystem” specifically, and programming and open-source software more generally.
2. Provide a ramp for future, self-guided learning to both strengthen core topics that were covered and explore new topics.

With open-source software, we build on the work of others, contribute back to it, and build something new on top in collaboration with others. Here we'll rely on existing, open, actively maintained community resources for the learning materials.

## Schedule and Lesson plan

- Introductions (15 min)
- About Python and the lessons (15 min)
  - [Why Python?](python)
  - [Running Python](install-run)
  - [Project Pythia](https://projectpythia.org/), the source of our lessons (tutorials)
  - [Jupyter](https://docs.jupyter.org/en/latest/what_is_jupyter.html). We'll focus on [Running Notebooks in JupyterLab](https://foundations.projectpythia.org/foundations/jupyterlab-notebooks/). See [Getting Started with Jupyter](https://foundations.projectpythia.org/foundations/getting-started-jupyter) for a broader introduction to Jupyter
  - Running lesson notebooks with the "Binder" link
- [Quickstart: Zero to Python](https://foundations.projectpythia.org/foundations/quickstart/) (40 min)
- Questions
- <u>*Break (15 min)*</u>
- Core scientific and data libraries
  - [Numpy Basics](https://foundations.projectpythia.org/core/numpy/). Array computations with Numpy (30 min)
  - [Matplotlib Basics](https://foundations.projectpythia.org/core/matplotlib/). Basic plotting (30 min)
  - [Pandas Basics](https://foundations.projectpythia.org/core/pandas/). Labeled tabular data (through "Basic statistics" section) (30 min)
  - Questions
- <u>*Break (15 min)*</u>
- Domain example: [`pymatgen` (Python Materials Genomics)](https://pymatgen.org), "a robust, open-source Python library for materials analysis." I learned about it through the website of the [Washington Clean Energy Testbeds](https://www.wcet.washington.edu). I'll [demonstrate just a bit of very basic `pymatgen` code](https://pymatgen.org/usage.html) (5 min)
- Questions and open discussions
