The MSc Scientific Computation is a full-time degree, studied over a period of approximately 12 months and commencing in late September. The course comprises 180 credits, split between 120 credits of core and optional taught modules and a 60-credit research project.
The taught modules, which take place during normal semesters, are presented in the form of lectures and computer practical sessions, and assessed using a combination of coursework and examinations. The project is a more substantial piece of individual work which develops your ability to engage in independent learning. It is undertaken over the summer under the supervision of a member of academic staff and leads to a written dissertation. Other skills that you should develop during the course include the ability to think logically and critically, problem-solving expertise, competence in programming and the use of appropriate software, and effective communication of results.
Seminars and Industrial Speakers
In addition to the taught modules, we run both a formal seminar series, in which invited speakers (usually from other universities) present their research, and an informal seminar series in which experts from within the school introduce topics related to their research in a manner accessible to students and researchers in other fields.
We also have regular talks from industrial visitors. Recent talks include:
The MSc Scientific Computation is designed for students with a first degree in mathematics or a related subject with substantial mathematical content (e.g. engineering, physics or computer science). We will assume that your degree has provided you with a basic knowledge of calculus, linear algebra and differential equations. If you are taking this MSc then you will also need some background in numerical methods, along with enthusiasm and a willingness to learn more about scientific computation, its analysis and its application.
The following two books give an indication of the level of mathematics required:
- All the Mathematics You Missed (But Need to Know for Graduate School) by Thomas A Garrity (CUP), covers the required general mathematical background. A basic understanding of the content of chapters 1-3, 5, 12-14 and 16 would be advisable.
- An Introduction to Numerical Analysis by Endre Suli and David Mayers (CUP), covers numerical methods in more detail. You should be able to understand, with some work (reading maths books is never easy!), chapters 1-2, 6-7 and 11-12.
There are many possible alternatives to the second textbook above, all of which describe the relevant background material in numerical methods and scientific computation. These include:
- Numerical Mathematics by A.Quarteroni, R.Sacco and F.Saleri (Springer), where you can examine the basics of chapters 1-3, 6, 8-11 and 13.
- Numerical Analysis by R.L.Burden and J.D.Faires (Brooks/Cole), where you can examine the basics of chapters 1-6.
Preparation for Core Modules
Introduction to Finite Element Methods
This is the most mathematically challenging module in the course. It is expected that students taking this module will have knowledge of vector calculus and normed and inner product spaces. The backgrounds of students taking this module can be diverse, so a more detailed document which details the mathematical concepts with which you should be familiar is available to view
Books for module:
- S. Brenner and R. Scott; The Mathematical Theory of Finite Element Methods (Springer–Verlag, 1994)
- P.G. Ciarlet; The Finite Element Method for Elliptic Problems (North–Holland, 1978)
- C. Johnson; Numerical Solution of Partial Differential Equations by the Finite Element Method (CUP, 1990)
- K. Eriksson, D. Estep, P. Hansbo and C. Johnson; Computational Partial Differential Equations (CUP, 1996)
Scientific Computing and C++
We do not require prior knowledge of C++. You may, however, wish to look through any introductory book on C++ such as:
- J. Pitt-Francism & J. Whiteley; Guide to Scientific Computing in C++
- J.R. Hubbard; Schaum's Outline of Programming with C++
- J.R. Hubbard; Schaum's Outline of Fundamentals of Computing with C++ (or the online tutorial)
Experience of programming in other languages would be very helpful but not essential.
Computational Applied Mathematics
This module takes place in the second semester, and will build on the analytical and practical skills you acquire in semester one. It will assume that you have gained enough knowledge of calculus, linear algebra and differential equations to study a broad range of computational algorithms for approximating and solving, numerically, systems of equations.