You are here: Mathematics > postgraduate > postgraduate studies > Level 6 units > MATH69111
School of Mathematics

# MATH69111 - 2012/2013

General Information
• Title: Scientific Computing
• Unit code: MATH69111
• Credits: 15
• Prerequisites: None
• Co-requisite units: None
• School responsible: Mathematics
• Members of staff responsible: Dr. Paul Johnson
Page Contents
Other Resources

## Specification

### Aims

To develop the basic knowledge required to translate some common mathematical concepts used in scientific problem solving into an object-oriented programming language (in this case C++). Students will use a combination of writing their own codes, together with the use of scientific libraries (such as NAG).

### Brief Description of the unit

The course will teach the syntax and logical structure of C++ programming and object-oriented development with no assumed prior knowledge. The emphasis is placed on the implementation of common mathematical tasks/algorithms in C++. The students must select two miniprojects from a list of available topics in applied maths. The projects will be assessed by a written report and a demonstration/oral description of the code.

Only a limited number of places are available on this course.

### Learning Outcomes

On successful completion of this module students will be able to

• understand the basic structure, content and syntax of a C++ program,
• appreciate the generic concepts underlying the object oriented programming model,
• develop a C++ program that solves a problem in physical applied mathematics,
• debug a C++ program and validate results in the context of a mathematical problem.

None.

### Syllabus

• Introduction to C++ programming language.
• Compiling/running/debugging programs.
• Data types - initialisation, scope, precision, input/output.
• Using functions and control structures to reproduce simple algorithms.
• Intrinsic and user-defined functions; call by value, call by reference, the const qualifier.
• Discussion of exception and error handling.
• Using the standard libraries in C++; vectors, lists, sets, maps, iterators, sorts, search, transforms.
• How to link external libraries such as the NAG routines.
• Discretisation of ODE/PDEs
• Object Orientated programming:
• constructors, destructors, methods, member data, public/private qualifiers
• inheritance; the protected qualifier, virtual methods and run-time polymorphism.

Some possible projects:

• ODE problems
• PDE problems
• Financial problems
• Biological problems
• Fluid Dynamics problems

Students on the Theoretical and Applied Fluid Mechanics MSc are required to choose their projects from the first 4 options on differential equations and continuation methods.

### Textbooks

• G.D. Smith, Numerical Solution of Partial Differenctial Equations, Clarendon Press, Oxford, 1978.
• D. Alcock, Illustrating C, Cambridge University Press, 1992.
• D. Yang, C++ and object-oriented numeric computing for scientists and engineers, Springer, 2000.
• S. Meyers, Effective C++: 55 specific ways to improve your programs and designs, Addison-Wesley, 2005.
• T.J. Chung, Computational Fluid Dynamics, CUP, 2002
• Y. Saad, Iterative methods for sparse linear systems, 1996, PWS series in computer science.

### Teaching and learning methods

Classes are weighted towards the first 5 weeks, with 2hr lecture/2hr labs, then 1hour/week class in weeks 7-12 where students can seek help with their chosen projects.

Project 1: end of week 8.
Project 2: end of week 12.

### Assessment

• Weekly courseworks: 10%
• Mini-Project 1: 40%
• Mini-Project 2: 50%

## Arrangements

Online course materials are available for this unit.