Module overview
Scientific computing is concerned with numerical representations and algorithms for solving problems that can be implemented as computer programs. This module gives an overview of the field of scientific and numerical computing. The module covers the most important aspects of numeric representation and algorithms for solving numeric problems. In particular, the module considers numerical methods for solving sets of equations, optimisation, matrix factorisations, differentiation and integration.
Aims and Objectives
Learning Outcomes
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Gain facility in using numerical computing libraries
- Be able to model simple problems such that they can be solved numerically
- Gain facility in benchmarking and optimising numerical algorithms
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Assess numeric stability and convergence of numeric algorithms
- Choose and justify the choice of appropriate algorithms for particular tasks
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Understand how real numbers are stored on digital computers and the implications with respect to precision, accuracy and errors
- Demonstrate knowledge of a range of tools and techniques for solving numerical problems
- Understand and reason about the numerical implications of the properties of linear algebra
Syllabus
Representation of Numeric Data:
- numeric representations
- fixed precision arithmetic
- underflow, overflow
- round-off error, error propagation
- quantisation & low precision arithmetic
- representations of vectors and matrices
+ row-major vs col-major
+ dense versus sparse
+ tricks with memory layouts and striding
Numeric Methods:
- Solving non-linear systems
+ Bisection method
+ Newton's method and convergence analysis
- Optimisation
+ Least squares
+ Levenberg-Marquardt
+ Newton's method, Quasi-Newton methods
- interpolation and using regression for curve fitting
- numerical integration (possibly including topics e.g. ODEs, Euler & Runge-Kutta)
- numerical differentiation
- solving linear systems (e.g. Cholesky, Gauss-Jordan, LU, QR)
+ under complete/over complete; matrix rank; the link to least squares
+ Matrix norms & determinant, conditioning & condition numbers, stability and sensitivity
+ inverse
- matrix multiplication (e.g. Strassen's algorithm and alternatives)
- EVD, SVD power iterations + (modified) gram-schmidt orthogonalisation (e.g. arnoldi, lanczos, etc)
+ pseudo-inverse
Numeric Programming:
- use of libraries (including e.g. Numpy, with knowledge of BLAS & LAPACK backends)
- The order of computation and computational complexity
- parallelism in numeric programs
- hardware (e.g. GPU) acceleration
+ Batch processing
Learning and Teaching
Teaching and learning methods
The module consists of:
- Lectures
- Combined tutorials and computing laboratory sessions
Type | Hours |
---|---|
Specialist Laboratory | 22 |
Lecture | 24 |
Guided independent study | 92 |
Revision | 12 |
Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Computing assignment | 20% |
Exam | 50% |
Class Test | 10% |
Computing assignment | 20% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Exam | 100% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Exam | 100% |
Repeat Information
Repeat type: Internal & External