View on GitHub

Computing and modelling for earth & environmental science

A sequence of Jupyter notebooks used to teach introductory computing and modelling concepts to earth and environmental science undergraduates.

Welcome Notebooks


This page hosts a set of Jupyter notebooks designed to teach introductory computing and modelling concepts using the Python programming language (now in Python 3). The notebooks were developed specifically for first year undergraduate students in earth and environmental sciences with no prior experience in programming or computer science.

The notebooks and some brief descriptions of their contents are available to view or download.


These exercises were designed specifically to be part of Earth’s Interconnected Spheres, a first-year core subject in the earth and environmental science degrees at the University of Wollongong. They assume no prior programming knowledge and no mathematics beyond high-school level algebra. Examples used in the notebooks are drawn from topics covered in the lecture component of the subject. Students complete the notebooks during 3-hour computer labs with teaching staff present to answer questions and explain concepts.

The lab component of the subject is split into three blocks:

  1. Python programming concepts
  2. Modelling concepts and application
  3. Group projects

Parts 1 and 2 use the notebooks provided here. For Part 3, students build on the models developed in Part 2. While designed to be taught in the order shown on the notebooks page, the three model applications (Daisyworld, Population, and Carbon Cycle) can be taught in any order or individually. The carbon cycle does expect a relatively high level of comfort with the modelling concepts and may require adjustment if students attempt this one without the other two.


The notebooks in Part 1 have largely been adapted from Gerard Gorman’s Introduction to programming for geoscientists, taught at Imperial University. For the first few notebooks, the differences are mainly in order of concepts and examples used; however, Gerard’s course goes deeper into Python fundamentals, and may be more appropriate for some audiences.

The notebooks in Part 2 are based on Dave Bice’s Exploring the Dynamics of Earth Systems, which uses the STELLA software program to teach modelling concepts. Here, some of these models have been translated from STELLA to Python and simplified to be appropriate for first year students.

Sincere thanks to both of these individuals for making their work available online.

Thanks also to the many EESC102 students who have served as the guinea pigs for these materials and helped me refine them to the most necessary concepts over the years.

Reuse, modification, and attribution

You are more than welcome to use these notebooks for any purpose, and to modify them to fit your needs. Please include an attribution with a link to this site, as well as the attributions to the original content creators noted above (also linked in the individual notebooks). Although not required, I would love to hear about your experiences and modifications, especially if you are teaching undergraduates.

I am also conducting some research around this work and its effects on student perceptions of computing. If you are teaching undergraduates and are potentially interested in participating, please contact me to learn more.


Jenny Fisher, University of Wollongong