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