Python Programming for Earth Science Students

Lisa Tauxe, Scripps Institution of Oceanography
University of California-San Diego


Computers are essential to all modern Earth Science research. We use them for compiling and analyzing data, preparing illustrations like maps or data plots, writing manuscripts, and so on. This class teaches how to write computer programs with special applications useful to Earth Scientists. You will learn Python, an object-oriented programming language, and use Jupyter notebooks to write our Python programs.

Course URL:
Course Size:

Course Format:
Online course

Institution Type:
University with graduate programs, including doctoral programs

Course Context:

This course requires a rudimentary understanding of Earth Science and satisfies requirements for data science.

Course Content:

This course draws on data from a wide variety of Earth Science topics such as structural geology, plate tectonics, paleoceanography, oceanography, and so on. Students learn Python Programming techniques to analyze and visualize data, including making maps, basic statistics, 3D projections, an introduction to machine learning and many others.

Course Goals:

This course is entirely structured around a special programming environment called Jupyter notebooks. A Jupyter notebook is a development environment where you can write, debug, and execute your programs. Students will learn how to use notebooks for Earth Science data processing.

Course Features:

Each Lecture is a Jupyter notebook and covers some essential programming skills. Each lecture builds on previous lecture material and has a set of practice problems to test student learning.

Course Philosophy:

The course was designed to provide basic programming skills to Earth and ocean science majors and graduate students. It started as an in person lecture class but evolved to be entirely online. The class also can be taken by individuals in a self-guided mode on their own by downloading the lecture materials from github or using the open platform hosted at


Students are graded on the daily practice problems and weekly integrative problems plus a final project on a topic of their own choosing. Nearly all students attained proficiency in programming and were able to produce exciting and innovative final projects.


Teaching Materials:

References and Notes:

This course is self contained on the github repository.