Southampton University DACE
Object Oriented Programming with C++
JC258
Overview of Sessions
Tutor : David Millard (dem@soton.ac.uk)
The course is divided into twelve sessions described below and
includes three pieces of coursework. I will put notes for the
sessions and details of the courseworks on-line as the course
progresses.
The following courseworks have now been set
- Coursework 1 (---)
- Coursework 2 (---)
- Coursework 3 (---)
- Coursework 3b (---)
I have compiled a list of resources that are available for you
to use. Of particular interest will be the free compilers and
online help. Follow the link below to find them:
Resources
The courses twelve sessions will approximately follow this
pattern:
- Why Objects
- Why C++
- Introduction to Web notes and examples
- First C++ program - Basic io in C++
- Difference between a class and an object
- Comparison with struct
- Defining a class, accessing variables and methods within
a class
- Encapsulation
- Aggregation
- Access levels : public and private
- Pointers vs References
- Operators new and delete
- Arrays
5)
Inheritance
- Indroducing inheritance
- Superclass and Subclass
- Object construction
- Overiding behaviour
- Access levels : protected
- Data structures in object oriented programming, the
linked list
- Designing classes in multiple files
- Using Destructors to remove objects cleanly
- Using the friend keyword to open up classes
- Virtual functions (virtual destructors)
- Abstract classes
- Static vs dynamic binding
- Look at how we design a larger program
- Examine such a program and see how it works
- Try adding extra functionality to the program
- Error Handling using return codes
- Using Exceptions
- Writing Exception classes
- Manipulating objects like built in types (inc. copy
constructor)
- Assignment
- Comparison
- Reusing algorithms with different types
- Template classes
- Defining and using templates
12) Looking at Complex Problems (not available on the web!)
- How to go about solving problems using the OO philosophy
- Examining a soloution to Coursework 3 as an example
Additional Work
Through the sessions in this course we have covered a large
portion of the C++ language, in particular concentrating on those
aspects that also appear in other object oriented languages (i.e.
encapsulation, inheritance, polymorphism). However there are
other things in the language that are worth spending some time on.
The following sessions are ones that we will not actually do in
the course but are still worth you looking at in your own time.
- Have a look at some of the template classes in the
Standard Template Library (STL)
- Learn what it is important to consider when using them
- C++ input/output streams
- Operators
- File I/O