Object Oriented Software CS222
This page contains links to all the on-line material for the Object Oriented
Software module. Not all of it has been revised yet for the 2000-2001 session.
For help on downloading and printing files, see
Instructions.
All material on this page is copyright Ian Nabney 1998-2001. Contact me
by email. My room is 315C,
and I hold office hours 1-2pm on Mondays and Tuesdays.
Manifesto /
Lecture Notes /
Lab Class Notes /
Assignment Specification
/
Example Programs/
Matrix Information
Module Manifesto
Stored as a compressed PostScript file.
Manifesto
Lecture Notes
These are stored as zipped PostScript files.
-
Part 1: The Core Language
Revised for 2001
-
Sections 1 to 8: Introduction, Getting Started, Variables,
Operators and Expressions, Statements, Functions,
Scope and Storage Class, Pointers and Arrays
-
Part 2: Introduction to Classes
Revised for 2001
-
- Section 9, Structures and Object-Based Design
- Section 10, Classes: Data Hiding and Member Functions
- Section 11, Object Creation and Destruction
- Section 12, Inheritance
-
Part 3: Overloading,
Exceptions, Design and Templates
Revised for 2001
-
- Section 13, Overloading Revisited: Conversions and Operator
Overloading
- Section 14, Error Handling and Exceptions
- Section 15, Design and Documentation
- Section 16, Templates and Generic Programming
- Section 17, Afterword
Lab Notes
These are stored as zipped PostScript files.
Labs 1-10 have been revised for 2001.
-
Lab 1
Revised for 2001
-
Objectives:
- To introduce compilation of single modules.
- To use the stream operators
<<
and >> for simple I/O.
- To illustrate the use of file redirection.
- Lab 2
Revised for 2001
-
Objectives:
- To practice the use of the kernel language.
- To reach a basic understanding of the use of
random number generators in software simulations.
- To gain familiarity with using command line arguments.
- Lab 3
Revised for 2001
-
Objectives:
- To practice the use of the kernel language: in particular,
functions and arrays.
- To practice C++ mechanisms for modularity.
- To gain a better understanding of function overloading.
- Lab 4
Revised for 2001
-
Objectives:
- To gain familiarity with the
new
and delete operators.
- To use makefiles for modular programming.
- To understand the use of reference parameters for variables
with state.
- Lab 5
Revised for 2001
-
Objectives:
- To write a class definition and member functions.
- To get a better understanding of
static and
const members.
- To use the Gnu
string class
- Lab 6
Revised for 2001
-
Objectives:
- To write the constructors and destructors for a class
with dynamic memory.
- To write the copy constructor and assignment operator for
a class with pointer member variables.
- To improve manipulation of pointers.
- To become familiar with the debugger.
- To gain more practice with writing makefiles.
- Lab 7
Revised for 2001
-
Objectives:
- To understand the role of public inheritance in class design.
- To write and use an abstract base class.
- To examine the issues involved in storing pointers in data
structures.
- Lab 8
Revised for 2001
-
Objectives:
- To write an overloaded output operator.
- To write a layered class.
- To develop software for an input stream of objects for a simulation.
- Lab 9
Revised for 2001
-
Objectives:
- To use exceptions to make a class more robust for
client programmers.
- To understand the use of exception classes to refine error handling.
- Lab 10
Revised for 2001
-
Objectives:
- To gain experience with the use of templates through writing
a generic container class.
- To understand the use of private inheritance to reuse implementations.
- To understand the use of smart pointers for resource
management.
Assignment Specifications
The 2000/2001 assignment specification
is available in zipped PostScript or as PDF format. The assessment criteria are
also available as zipped PostScript
The 1999/2000 assignment specification
is available in zipped PostScript or as PDF format.
The 1998/9 assignment specification
is available in zipped PostScript.
Example Programs
An indexed page of programs used as examples during lectures and for
background interest.
Introduction to Complex Numbers and Matrices
A brief introductory description
of complex numbers, matrices, and their arithmetic
operators is available in HTML.
Return to Top
Last modified: Mon Mar 19, 2001