Software Design and Development

This was created for the MPhil in Scientific Computing. The first two lectures cover the basic principles of practical software engineering that are important for writing reliable and efficient scientific software, and to avoid wasting time in avoidable debugging. They were taken from a previous course, which is still being given (now using these lectures). The third and fourth are stripped-down versions of the computer arithmetic and parallel design courses.

Lectures

Introduction and Principles (also in the form of a Handout for the MPhil )

Checking and Diagnostics (also in the form of a Handout for the MPhil )

These cover the basic principles of practical software engineering that are important for writing reliable and efficient scientific software. They are also intended to save development time by teaching effective debugging techniques and reducing the need to learn by making mistakes. More details are given in How to Help Programs Debug Themselves.

Computer Arithmetic and Numerics (also in the form of a Handout for the MPhil )

This is a stripped-down versions of the course ( How Computers Handle Numbers ).

Languages and Parallelism (also in the form of a Handout for the MPhil )

This contains a summary of the most commonly used languages and a stripped-down version of the course ( Parallel Programming: Options and Design