C++ Programming and Advanced Algorithm Design

Module code: CO7104

Module co-ordinator: Nir Piterman

C++ is one of the world's most popular programming languages, due to its potential for producing efficient and compact code. As such any scientist wishing to develop efficient programs should be familiar with the use of its central features. This module will give you a basic grasp of how to use C++ for scientific computing.

Algorithms are traditionally designed, analysed and compared on a theoretical computer model. However an algorithm that is fast on the theoretical model may be relatively slow on modern computers. You will study memory hierarchies on modern computer architectures and their effects on algorithm performance, and then learn how to design fast algorithms on modern computers.