Scientific Computing and C++
Code | School | Level | Credits | Semesters |
MATH4063 | Mathematical Sciences | 4 | 20 | Autumn UK |
- Code
- MATH4063
- School
- Mathematical Sciences
- Level
- 4
- Credits
- 20
- Semesters
- Autumn UK
Summary
This course presents an introduction to the programming language C++, with a strong emphasis on scientific computing applications.
A detailed list of key topics covered by this module is given below.
C++ Language:
- Basic types and control structures, program design and implementation, program comprehension and modification, program testing and documentation;
- Pointers, functions, and reference variables;
- Classes, inheritance and derived classes;
- Templates.
Applications:
- Computer roundoff and its effect on the design of algorithms;
- Polynomial interpolations;
- Numerical integration.
- Computational linear algebra, including direct and iterative methods.
In addition, a training session covering the oral presentation assessment criteria and some elements of good practice will be included as part of this course.
Target Students
Available to MSc Financial and Computational Mathematics, 4-year Natural Sciences, 4-year Mathematicsand Mathematical Physics students. Also available to Year 4 MMath students.
Classes
- One 1-hour lecture each week for 11 weeks
- One 2-hour computing each week for 11 weeks
Assessment
- 10% In-class Test: In-Class Test
- 45% Coursework 1: Coursework 1
- 45% Coursework 2: Coursework 2
Assessed by end of autumn semester
Educational Aims
The purpose of thiscourse is to introduce concepts of scientific programming using the object oriented language C++ for applications arising in the mathematical modelling of physical processes. Students taking this module will develop knowledge and understanding of a variety or relevant numerical techniques and how to efficiently implement them in C++.Learning Outcomes
A student who completes this course successfully will be able to:
L1 - select, analyse and implement appropriate numerical methods for ordinary differential equations (initial and boundary value problems)
L2 - discretise partial differential equations using finite difference and finite volume methods
L3 - analyse the discretisation error and stability of methods for approximating differential equations
L4 - approximate functions and data using least squares and trigonometric polynomials
L5 - approximate eigenvalues and eigenvectors using iterative algorithms
L6 - formulate Krylov subspace methods for solving large linear systems of equations
L7 - implement and evaluate numerical algorithms.