CO7104 C++ Programming and Advanced Algorithm Design
||Convenor: Dr. N. Rahman
||Two hour exam in January: 50%
This module teaches the basic principles of C++ programming and
the design of algorithms on modern computer architectures.
Students should be able to: understand the basic components of a
C++ program including methods and attributes, the distinction
between classes and instances, the structures required
to write basic algorithms, algorithm analysis and design,
modern computer architectures and memory hierarchies and
some algorithms for scientific computing.
Class sessions, recommended textbook and
Marked coursework, written examination.
Develop problem solving skills by developing C++ programs for
Students will be able to design and implement C++ programs on modern
computer architectures for solving problems in scientific computing.
Class sessions together with worksheets.
Marked coursework and traditional written examination.
Explanation of Pre-requisites
It is assumed that students are already familiar with a programming
language such as Fortran, Java or C.
Over the past 15 years C++ has become 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 is intended to give the student a basic grasp of its
use 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.
This module introduces the memory hierarchies on modern computer
architectures and its effects on algorithm performance. The module
then teaches how to design fast algorithms on modern computers.
- Introduction to C++.
- Classes, constructors and destructors.
- Pointers, arrays and references.
- Methods and operators.
- Templates and inheritance.
- Introduction to LAPACK++.
- Algorithm analysis and design.
- Modern computer architectures and memory hierarchies.
- Design of algorithms for matrix operations, polynomials
and the fast fourier transform.
The C++ Programming Language, 3rd edition,
Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest,
Introduction to algorithms, 2nd edition,
MIT Press, 2001.
B. H. Flowers,
An introduction to numerical methods in C++,
Oxford : Clarendon Press, 1995.
Course notes, web page, study guide and worksheets.
Course questionnaires, course review.
Author: N. Rahman, tel: +44 (0)116 252 2593
Last updated: 2004-01-20
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.