ED011-13
Teaching Python for Geoscience Research with Jupyter Notebooks

Tuesday, 8 December 2020: 18:07
Virtual
Gail Lynn Christeson, University of Texas at Austin, Institute for Geophysics, Austin, TX, United States
Abstract:
Python for Geoscience Research is a newly-developed (2019) semester-long programming course taught at the Jackson School of Geosciences with an average enrollment of 45-50 students. Students are required to download Anaconda Python to their own laptop, and to bring a laptop to each class. All lectures are taught via Jupyter notebooks which students and instructor step through interactively. Each ~30 minute lecture is paired with an in-class assignment with simple questions that students can work on collaboratively, and can get one-on-one assistance from the instructor or TA. Longer coding questions are included in weekly homework assignments. The course consists of four modules: 1) Python Fundamentals, to provide a strong foundation and teach novices programming basics; 2) Scientific Python, which covers modules such as numpy, pandas, and matplotlib; coding questions start making use of scientific data; 3) Data Visualization focusing on geographic modules such as Folium, Cartopy, and Plotly choropleth maps; 4) Introduction to Machine Learning with lectures introducing supervised and unsupervised techniques. By the end of the course students can analyze and make figures from their own datasets, as demonstrated by independent final projects. Many students also feel comfortable exploring new modules not covered by the class.

Some lessons learned after teaching the course multiple times: 1) The fundamentals are important, and extra time needs to be spent with loops and functions for novice programmers; 2) Students enjoy pandas and have requested additional lectures; 3) Data visualizations is the most popular module; 4) Students either love or hate the machine learning module.