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:
- Be able to model simple problems such that they can be solved numerically
- Gain facility in using numerical computing libraries
- Gain facility in benchmarking and optimising numerical algorithms
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
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Choose and justify the choice of appropriate algorithms for particular tasks
- Assess numeric stability and convergence of numeric algorithms
Syllabus
Error Analysis 
    Floating-point arithmetic and IEEE 754 
    Absolute and relative error in Taylor’s approximation 
Numerical Methods for Nonlinear Equations 
    Bisection 
    Fixed Point Iteration 
    Newton’s Method 
Numerical Linear Algebra 
    Least Squares Methods: e.g., Gauss-Seidel, Newton, Levenberg–Marquardt algorithm 
    Condition number, Stability and Sensitivity 
    Power methods and Eigen-decomposition 
    Singular Value Decomposition and Pseudo inverse 
    LU, Cholesky, QR, Gram-Schmidt process 
    (Optional) Krylov subspace 
Numerical Methods for Calculus and Differential Equations 
    Numerical Integration 
    Introduction to Ordinary Differential Equations 
    Euler’s Method and Runge-Kutta Method 
    Brief introduction to PDE and Finite Difference Method 
Solving Large-scale problems 
    Numerical Library, e.g., BLAS, LAPACK and Sparse BLAS 
    Parallelism, Block-wise computation and GPU acceleration 
    (Optional) Randomised Methods
    Learning and Teaching
Teaching and learning methods
The module consists of:
- Lectures
- Combined tutorials and computing laboratory sessions
      
              | Type | Hours | 
|---|---|
| Guided independent study | 92 | 
| Specialist Laboratory | 22 | 
| Lecture | 24 | 
| 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 | 
|---|---|
| Exam | 60% | 
| Coursework | 40% | 
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