Teaching

Some of my current courses are described below.

Data-driven Astronomy

Science is undergoing a data explosion, and astronomy is leading the way. Modern telescopes produce terabytes of data per observation, and the simulations required to model our observable Universe push supercomputers to their limits. To analyse this data scientists need to be able to think computationally to solve problems.

In this course you will investigate the challenges of working with large datasets: how to implement algorithms that work; how to use databases to manage your data; and how to learn from your data with machine learning tools. The focus is on practical skills - all the activities will be done in Python 3, a modern programming language used throughout astronomy.

Start the (free) course now on Coursera. Note that this course does assume familiarity with basic programming in Python.

OLET1622 Numbers and Numerics

Computational science underpins modern science, engineering and finance. It provides numerical solutions to problems that can’t be solved analytically, and explores problems that are not amenable to experiments. This unit focuses on the foundation of numerical computing: how numbers are represented and manipulated by computers.

Understanding the representation of integers and real numbers, and their fundamental limitations is critical for accurate numerical calculations. For example, if you add the value 0.1 a total of one million times, the exact answer is 1,000,000 x 0.1 = 100,000. However, when you do this on a computer the answer might be 100,958.3. This is a limitation of the floating-point representation of numbers in every modern computer - but most people are unaware of it!

The explosion of Ariane 5
The explosion of Ariane 5

In this Unit you will learn about number systems and binary, two’s complement representation for integers; fixed and floating-point representations for real numbers; precision and overflow, rounding and truncation errors. We will illustrate these with practical examples, and show how mistakes in computational calculations can result in catastrophes such as the explosion of the Ariane 5 rocket. All activities will be done in Python 3, a widely used modern programming language.

More information (for University of Sydney students)