Slides
HTML presentations from courses and talks by the Chapman Research Group.
ATOC 4815/5815: Scientific Programming, Data Analysis and Visualization
Spring 2026
- Week 0: Course Introduction - Welcome, syllabus, AI/LLM policy, setup, and getting started
- Demo Lecture: Python & Data Analysis - Introduction to course structure and basic Python
- Week 1: Python Fundamentals - Variables, types, strings, lists, dictionaries, control flow, loops, and functions
- Week 2: Functions and Reusable Code - Advanced functions, error handling, file I/O, and object-oriented programming
- Week 3: NumPy and Basic Plotting - NumPy arrays, vectorized operations, matplotlib basics, and data visualization
- Week 4: Numerical Integration & Explicit Euler - Solving ODEs with Forward Euler, stability analysis, and Lorenz63
- Week 5: Midterm & Post-Test Review - The date, nested loops, and why integration needs a loop
- Week 5.5: Linking Python Scripts Together - Modules, imports,
if __name__ == "__main__", and multi-file project structure -
Week 6: Git for Scientists - 5 commands to survive: clone, status, add, commit, push (practice repo) Collaboration - Branches, merging, pull requests, and .gitignore - Week 7: Tabular Data & Pandas - Series and DataFrames, time series analysis, resampling, rolling windows, and aggregation
- Week 8: Multi-Dimensional Data with xarray - NetCDF files, DataArrays, Datasets, coordinate-based selection, climatologies, and gridded data analysis
- Week 9a: Grids & Regridding I - Grid geometry, cell area, nearest-neighbor and bilinear interpolation with xarray, intensive vs. extensive variables
- Week 9b: Grids & Regridding II - Conservative remapping, mass conservation, xESMF, and a diagnostic checklist for every regrid
- Week 9: Python Parallelization - GIL, vectorization, multiprocessing, concurrent.futures, Dask, and best practices for making code faster
- Week 10: Packaging Your Python Code - pyproject.toml, pip install, entry points, TestPyPI, conda-forge, and making your code installable
More slides will be added throughout the semester
Course Materials
- Course Syllabus (PDF)
- Final Project Guidelines - Graduate Students
- Git for Scientific Software Development - Version control for atmospheric science (adapted from Jack Atkinson)
- IDE Setup Guide - Mac (PDF)
- IDE Setup Guide - Windows (PDF)
- Conda Environment File (YML)
ATOC 5860: Objective Data Analysis Laboratory
Fall 2025
Slides coming soon
Public Talks
2026
- POP goes the CAMulator: Coupling an AI Atmosphere to a Dynamic Ocean — CAMulator ↔ POP2 inside CESM2. M2LInES Team Meeting, March 4, 2026.
Creating Your Own Slides
These slides are created using Quarto with reveal.js. The source files (.qmd) can be found in the course GitHub repositories.
For Students
If you’d like to run the code examples from the slides:
- Download the
.qmdsource file - Install Quarto
- Render with:
quarto render filename.qmd
Key Features
- Live code examples: Execute Python directly in slides
- Math equations: LaTeX support for atmospheric equations
- Interactive navigation: Arrow keys, overview mode (ESC), speaker notes (S)
- PDF export: Print to PDF for offline viewing