 
 
 
 
 
   
 Next: MC206 Software Engineering and
 Up: Year 2
 Previous: MC204 Design and Analysis
 
MC205 Object-Oriented Programming Using C++
| Credits: 10 | Convenor: Dr. G. Laycock | Semester: 2 | 
| Prerequisites: | essential: MC103, MC104, MC206 |  | 
| Assessment: | Continuous assessment: 50% | 1.5 hour exam: 50% | 
| Lectures: | 18 | Classes: | 12 | 
| Tutorials: | none | Private Study: | 21 | 
| Labs: | 24 | Seminars: | none | 
| Project: | none | Other: | none | 
| Total: | 75 |  |  | 
Explanation of Pre-requisites
It is essential that students should have a thorough grasp of
  imperative programming before attempting this module. It is assumed
  that all students have a good working knowledge of Pascal, up to and
  including the use of dynamic data structures using pointers.
It is assumed that students taking this module have an understanding 
  of the object-oriented design philosophy, and are familiar with the
  fundamental concepts of the object-oriented paradigm.
 
Course Description
Through the 1990's C++ has become one of the world's most popular
  programming languages, due to its potential for producing efficient
  and compact code taking direct advantage of the powerful
  object-oriented philosophy.  As such today's computer scientists and
  software engineers 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 straight-forward imperative and especially
  object-oriented programming.
 
Aims
To present C++ as an alternative imperative programming language to
  Pascal.
To build on the students' knowledge of object-oriented design, data
  abstraction and algorithms by introducing the language support in
  C++ for these ideas.
 
Objectives
By the end of this module, students should be able to:
  
- 1.
- convert Pascal programs (to the level encountered in
first year programming modules) to equivalent C++ code;
  
- 2.
- understand the object-oriented features of C++ and how they
    relate to concepts from object-oriented design;
  
- 3.
- use the object-oriented features of C++ to efficiently
    implement abstract data-structures with clean and simple
    interfaces;
  
- 4.
- use the facilities provided by C++ to divide source code
    logically between multiple files, and to take advantage of this
    with partial compilation;
  
- 5.
- use the object-oriented features of C++ to implement
    object-oriented designs of reasonable size and complexity (such as 
    those encountered in the second year software engineering module).
  
Transferable Skills
-  Knowledge and experience with C++ is much sought after in the
    software job market.
-  Skills in object-oriented programming with C++ are very
    beneficial when learning other object-oriented languages.
-  Exposure to a knew language and programming paradigm improves
    the student's general programming skills in all languages.
-  Skills in object-oriented programming help to re-enforce and
    expend on object-oriented design skills from other modules.
  
Syllabus
Converting Pascal to C++.  Overview of C++ and comparison with
  Pascal.  Program structures, functions, data-types.  Control
  structures, I/O, arrays pointers, strings.
  Object-oriented programming.  Classes and methods,
  constructors, assignment and destructors.  Inheritance, templates,
  exception handling, operator overloading.  Generic abstract data
  types, iterators. The standard C++ class library and the standard
  template library.
 
Reading list
Essential:
  Ira Pohl, 
  C++ for Pascal Programmers, 2nd edition, 
  Benjamin Cummings, 1995.
  
Background:
  Bjarne Stroustrup, 
  The C++ Programming Language, 3rd edition, 
  Addison-Wesley, 1997.
 
Details of Assessment
The assessed coursework for this module is divided between several
  programming exercises.
The first two exercise consist of problem
  sheets requiring a number of relatively simple programs to be
  written to illustrate basic understanding of the basic features of
  C++. These will be assessed by demonstrators during the practical
  laboratory sessions.
The later exercises will require the student to 
  write larger pieces of code to implement various object-oriented
  classes suitable for incorporation in larger object-oriented
  designs. Generally, a framework of code will be provided and the
  student has to implement some missing sections to produce a complete
  working program. These exercise will be submitted electronically.
 
 
 
 
 
 
   
 Next: MC206 Software Engineering and
 Up: Year 2
 Previous: MC204 Design and Analysis
S. J. Ambler
11/20/1999