Summary and Schedule
Pomona College HPC Workshop Series
This workshop is part of the Pomona College Research Computing Workshop Series, adapted from Plotting and Programming in Python by Software Carpentry.
Cluster: sagehen.hpc.pomona.edu Web Portal: OnDemand Support: its-hpc@pomona.edu
Python and its scientific libraries (NumPy, Pandas, Matplotlib) are
available on Sagehen HPC via module load miniconda3.
Practice interactively through Jupyter on OnDemand.
Adapted for Pomona College by Andrew Wilson, ITS Research Computing. Licensed under CC-BY 4.0.
This lesson is an introduction to programming in Python 3 for people with little or no previous programming experience. It uses plotting as its motivating example and is designed to be used in both Data Carpentry and Software Carpentry workshops. This lesson references JupyterLab but can be taught using alternative Python 3 interpreters as well (e.g., repl.it, Anaconda).
Prerequisites
- Learners need to understand what files and directories are, what a working directory is, and how to start a Python interpreter.
- Learners must install Python 3 before the class starts.
- Learners must get the gapminder data before class starts: please download and unzip the file python-novice-gapminder-data.zip.
Please see the setup instructions for more details.
Acknowledgments
Developed by Andrew Wilson, Director of Research Computing and Digital Scholarship at Pomona College, with Andrei Motchenko, who tested, edited and produced screenshots for the workshop series.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Running and Quitting | How can I run Python programs? |
| Duration: 00h 15m | 2. Variables and Assignment | How can I store data in programs? |
| Duration: 00h 35m | 3. Data Types and Type Conversion |
What kinds of data do programs store? How can I convert one type to another? |
| Duration: 00h 55m | 4. Built-in Functions and Help |
How can I use built-in functions? How can I find out what they do? What kind of errors can occur in programs? |
| Duration: 01h 20m | 5. Morning Coffee | |
| Duration: 01h 35m | 6. Libraries |
How can I use software that other people have written? How can I find out what that software does? |
| Duration: 01h 55m | 7. Reading Tabular Data into DataFrames | How can I read tabular data? |
| Duration: 02h 15m | 8. Pandas DataFrames | How can I do statistical analysis of tabular data? |
| Duration: 02h 45m | 9. Plotting |
How can I plot my data? How can I save my plot for publishing? |
| Duration: 03h 15m | 10. Lunch | |
| Duration: 04h 00m | 11. Lists | How can I store multiple values? |
| Duration: 04h 20m | 12. For Loops | How can I make a program do many things? |
| Duration: 04h 45m | 13. Conditionals | How can programs do different things for different data? |
| Duration: 05h 10m | 14. Looping Over Data Sets | How can I process many data sets with a single command? |
| Duration: 05h 25m | 15. Afternoon Coffee | |
| Duration: 05h 40m | 16. Writing Functions | How can I create my own functions? |
| Duration: 06h 05m | 17. Variable Scope |
How do function calls actually work? How can I determine where errors occurred? |
| Duration: 06h 25m | 18. Programming Style |
How can I make my programs more readable? How do most programmers format their code? How can programs check their own operation? |
| Duration: 06h 55m | 19. Wrap-Up |
What have we learned? What else is out there and where do I find it? |
| Duration: 07h 15m | 20. Feedback | How did the class go? |
| Duration: 07h 30m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Pre-Workshop Requirements
Before the workshop, please ensure you have the following set up and working.
1. Active Sagehen HPC Account
You must have a valid Pomona College HPC account with access to the Sagehen cluster.
To verify your access:
If you don’t have an account or can’t log in, contact its-hpc@pomona.edu.
2. Accessing Python via OnDemand
The recommended way to access Python for this workshop is through the OnDemand web interface:
https://ondemand.hpc.pomona.edu/
Steps to access Jupyter Notebook: 1. Go to https://ondemand.hpc.pomona.edu/ 2. Log in with your
Pomona credentials (with DUO MFA) 3. Click on “Interactive Apps” menu 4.
Select “Jupyter Notebook” or “RStudio Server” 5. Configure your session:
- Partition: amd (default) - Number of hours: 2-4 hours -
Number of cores: 4 - Memory: 8GB 6. Click “Launch” 7. Wait for the
session to start, then click “Connect to Jupyter”
4. Required Python Packages
This workshop requires the following Python packages. They may already be installed in the base conda environment. Test them by:
If you see an error, install the packages:
Package list: - numpy: Numerical computing library - pandas: Data manipulation and analysis - matplotlib: Plotting and visualization
5. Download Gapminder Dataset
The workshop uses the Gapminder dataset. Download it before the workshop:
BASH
# Create a workshop directory
mkdir -p ~/workshops/python-gapminder
cd ~/workshops/python-gapminder
# Download the dataset
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_oceania.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_africa.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_americas.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_asia.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_europe.csv
# Verify the files were downloaded
ls -lh gapminder*.csv
6. Test Your Python Environment
Create a test script to verify everything works:
BASH
cat > test_env.py << 'EOF'
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Test numpy
arr = np.array([1, 2, 3, 4, 5])
print(f"NumPy test: {arr.mean()}")
# Test pandas
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
print(f"Pandas test:\n{df}")
# Test matplotlib
plt.figure(figsize=(6, 4))
plt.plot([1, 2, 3], [1, 4, 9])
plt.title("Simple Test Plot")
plt.savefig("test_plot.png")
print("Matplotlib test: plot saved as test_plot.png")
print("\nAll tests passed!")
EOF
python test_env.py
8. Sagehen Cluster Access Methods
You can access Sagehen three ways:
OnDemand Web Interface (recommended for this workshop) https://ondemand.hpc.pomona.edu/
-
SSH Command Line (for terminal work)
Local Development + Remote Submission Develop locally, submit scripts to Sagehen via SSH
9. Cluster Resources Available
Sagehen has the following resources available during the workshop:
- Compute Nodes: 12 nodes with 128 cores each, 512GB RAM
-
GPU Nodes (10 GPUs total, confirmed May 2026):
- 4× NVIDIA A100 80 GB
- 4× NVIDIA L40S 48 GB
- 2× NVIDIA RTX PRO 6000 Blackwell 96 GB
-
Storage:
-
/rhome(100GB personal) -
/bigdata(1TB lab, shared) -
/scratch(SSD temp) -
/tmpfs(RAM temp)
-
-
Partitions:
amd(default),gpu,short(1 hour max)
10. Getting Help
- HPC Support: its-hpc@pomona.edu
- Instructor: Andrew Wilson
- OnDemand Docs: https://ondemand.hpc.pomona.edu/
Once you’ve verified items 1-6 above, you’re ready for the workshop!