EMAT30008: Scientific Computing

Overview

Purpose

This course will build up your skills in software development and teach you the relevant best practices from the perspective of scientific computing. By the end, you will be better able to write robust and reliable numerical codes.

Intended learning outcomes

Upon successful completion of the course, students will be able to

Specific aims

To achieve the intended learning outcomes, we focus on a few specific aims. It seems natural to break the aims down into two categories: scientific, and software engineering. While they are specified separately, the idea is that they are intrinsically linked — the scientific aims are to be achieved while simultaneously achieving the software aims.

Scientific aims

[1] Multiple shooting is a good extension that you might want to consider; it is relatively easy to implement (once single shooting is implemented) and is much more stable than single shooting.

Software engineering aims

[2] There are many abstraction techniques in software engineering; see this Wikipedia page.
[3] It isn't really possible to use Agile or similar techniques within this course because of the relative simplicity of the tasks. Also note this commentary on different management techniques — I suspect it's quite accurate!

Format of the course

Each week we will provide

Group exercises will include activities such as pair coding — come ready to participate. All material will be released one week in advance of the appropriate Monday lab session.

Week 13: Matt Hennessy

Weeks 14–17: David Barton

Week 18

Weeks 19–22: Matt Hennessy

Weeks 23–24: Matt and David