EARS 80.03: Technical Computation in the Earth Sciences, Fall 2020

Undergraduate/Graduate Course, Dartmouth College, Department of Earth Sciences, 2020

Course overview:

Driven by increasing data availability, processing power, and model sophistication, scientific or technical computation has become increasingly central to basic research in the Earth Sciences. This course aims to provide Earth Science students with a working introduction to scientific computation including (1) hands-on experience applying common, widely applicable sampling and inversion algorithms to classic Earth Science problems; (2) an awareness of the factors limiting efficiency and scalability when working with large datasets; and (3) an introduction to some of the tools and best practices of software engineering used to produce more robust, maintainable software.

Prerequisites:

Previous computer programming experience. MATH 3 or greater calculus.

Learning Objectives:

This course is structured to complement the “Quantitative Analysis of Earth Systems” category of courses within the Earth Sciences major. The primary objective of this course, broadly stated, is to provide students with hands-on experience with, and the consequent ability to independently use and understand, a critical range of tools and techniques required to conduct advanced computational research in the Earth sciences. Upon completing this course, students will be able to:

  • Solve some common linear and linearizable inverse problems relevant to the Earth sciences.
  • Use a Metropolis-style algorithm to sample a posterior distribution.
  • Write a simple parallel program, to take advantage of the inherent parallelism of geologic data.
  • Use the basic tools of software engineering to write reliable and reproducible code for scientific research.

Readings:

Selected readings may be assigned throughout the term, primarily from the following three texts

  1. Bayesian Data Analysis, 3rd Edition by Gelman et al.
  2. Think Julia: How to Think Like a Computer Scientist by Lauwens & Downey
  3. Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares by Boyd & Vandenberghe all three of which are available as online courtesy of the authors. You are encouraged to complete the readings before class.

Additional resources:

  1. The Julia Programming Language
  2. Linear algebra code examples in Julia from Boyd & Vandenberghe
  3. “Julia Advice for MATLAB (or R or Python) programmers”