CO4104 C++ Programming and Advanced Algorithm Design


CO4104 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: 20 Problem Classes: none
Tutorials: 10 Private Study: 100
Labs: 20 Seminars: none
Project: none Other: none
Surgeries: none Total: 150

Subject Knowledge

Aims

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

Learning Outcomes

Students should be able to: understand the components of a C++ program, 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

To develop design, analysis and problem solving skills.

Learning Outcomes

Students will be able to mathematically analyse the computing performance of algorithms. They will be able to design algorithms to solve computing problems.

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.


[University Home] [Faculty of Science] [MCS Home] [CS Home] CS Home Page [University Index A-Z] [University Search] [University Help]

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