This is a general course in object orientation, offering an introduction for complete beginners and a wider perspective for experienced users of object technology. This course provides a `big picture', rather than presenting many little details.
At the end of the course, students will have a solid foundation in object-oriented concepts. They will know the history of object-oriented languages, and appreciate the advantages that object orientation brings. They will have a little experience in object-oriented programming (using Java) and design (using UML).
They will be able to make educated assessments of the benefits of object orientation, and will have a framework on which to build deeper knowledge of the concepts.
- Object orientation in context:
- structured programming; abstract data types;
driving applications (discrete event simulation, GUI toolkits);
languages (Simula, Smalltalk, C++, Eiffel, Self, Visual Basic, Java).
- Essential object-oriented concepts:
- abstraction and encapsulation; design by contract; classes and objects;
- Introduction to object-oriented programming:
- Java design considerations; support for object-oriented concepts;
programming in Java; case study.
- Introduction to object-oriented design:
- unified modelling language; class, state and sequence diagrams;
invariants, assertions, snapshots and filmstrips; semantics of diagrams;
Some familiarity with programming (in any language) will be helpful. No experience with object-oriented concepts is necessary or expected.