# MATH49111/69111 - Scientific Computing

**Lecturer:**Dr. Martin Lotz

**Lecture**: Monday 10-11, ATB G.209

**Lab:**Friday 13-15, ATB G.105 (Computer room)

**Office hour**: Monday 11-12

## General Information

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 projects from a list of available topics in applied mathematics. The projects will be assessed by a written report with working code. More general information on the course can be found here.## Lecture Notes and Slides

Slides for the lecture will be published regularly. The pages for each week also contain additional information on the tasks to be achieved in each week. Material from a previous years' course by Dr. P. Johnson can be found here.## Projects

The first assignment, counting 40%, is to be handed at the end of week 8 (14/11/2014), while the second one, counting 50%, is due at the end of week 12 (on 12/12/2014). Three smaller coursework tasks in during the first 4 weeks will count towards the remaining 10%.- Project guidelines
- Sample marking sheet
- Project handbook 1
- Start-up code for the first set of projects

Copy all code into the project folder of your IDE (for example, Vistual Studio) - Instruction for timing pieces of code to high precision. Note that there is a difference to how this is done in Windows and Linux, and you need to include additional headers. The example code given uses function from the Sorting project.
- Project handbook 2
- Slides with a very brief description of each project
- Start-up code including the MVector and Matrix classes
- The matrices for use with project 6. The first three entries contain the number of rows, columns, and non-zero entries of the matrix. Note that these are very large!
- Tips on using pseudocode in LaTeX
- Using C++ code listings in LaTeX

## Writing

The recommended system for writing mathematics, and in particular the project reports, is Latex. A good collection of links and information can be found here and here.## Sample Code

## Additional material

- Integrated Development Environments (IDE)
- Recommended books
- RECOMMENDED FOR BEGINNERS:- M. McGrath, "C++ Programming in easy steps", 2002, Computer Step.
- 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.