[The University of Leicester]

Department of Mathematics & Computer Science



Next: About this document ... Up: MSc Previous: CO7096 Compression Methods for Multimedia

CO7104 C++ Programming and Advanced Algorithm Design


CO7104 C++ Programming and Advanced Algorithm Design

Credits: 20 Convenor: Dr. N. Rahman Semester: 1

Prerequisites:
Assessment: Coursework: 50% Two hour exam in January: 50%
Lectures: 24 Problem Classes: none
Tutorials: 12 Private Study: 90
Labs: 24 Seminars: none
Project: none Other: none
Surgeries: none Total: 150

Subject Knowledge

Aims

This module teaches the basic principles of C++ programming and the design of algorithms on modern computer architectures.

Learning Outcomes

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.

Methods

Class sessions, recommended textbook and worksheets.

Assessment

Marked coursework, written examination.

Subject Skills

Aims

Develop problem solving skills by developing C++ programs for scientific computing.

Learning Outcomes

Students will be able to design and implement C++ programs on modern computer architectures for solving problems in scientific computing.

Methods

Class sessions together with worksheets.

Assessment

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.

Course Description

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.

Syllabus

Reading list

Essential:

Bjarne Stroustrup, The C++ Programming Language, 3rd edition, Addison-Wesley, 1997.

Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest, Introduction to algorithms, 2nd edition, MIT Press, 2001.

Background:

B. H. Flowers, An introduction to numerical methods in C++, Oxford : Clarendon Press, 1995.

Resources

Course notes, web page, study guide and worksheets.

Module Evaluation

Course questionnaires, course review.


Next: About this document ... Up: MSc Previous: CO7096 Compression Methods for Multimedia

[University Home] [MCS Home] [University Index A-Z] [University Search] [University Help]

Author: N. Rahman, tel: +44 (0)116 252 3902
Last updated: 2003-09-23
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.