The Java language is now one of the two most popular object-oriented programming languages. It came to fame in association with the Internet but this course's remit is wider than the just the Internet and applets. Java is a powerful and portable deployment language. Java is also an excellent language for learning object-oriented programming and for providing a good foundation of object-oriented design principles. It is a modern, moderately small and elegant object-oriented language, and substantial progress can be made in the three days of the course.
Unlike Smalltalk--another excellent introductory language--Java takes its syntactic style from C++ (but not its size or complexity). So effort spent in this course is very likely to be of benefit even if Java is not your implementation language.
This is not a first language course. Participants should be practising software engineers who already know a modern, high-level programming language--those who know only COBOL or a scripting language will find the course challenging. Participants will be wanting to understand and practice the correct use of object technology and may be considering Java as their implementation technology. The course can be used as an introductory course and be followed by an object-oriented analysis and design course. It can also be taken after an analysis and design course, as a way of solidifying and strengthening theoretical knowledge.
The course lasts three days.
It is based on a cycle of theory-language-practice-review, with approximately two cycles per day. One non-trivial, practical case-study is developed during the course. Each day will start at 09.30 and finish at 17.00, with an hour for lunch. Time is available at the end of the day for extended discussions or related issues.
We look at objects, what they evolved from, what they offer and what an object orientation entails. We briefly contrast the various object-oriented languages. The Java language is introduced.
The terminology of object-orientation is defined, and we begin the introduction of the themes of object-orientation with encapsulation and information hiding, and demonstrate that object-oriented programming is an inversion of traditional programming.
We look, specifically, at how objects and messages are implemented in Java.
The case-study is introduced, and we begin to detail the design and implementation of object classes. We experience what it means to be an abstract data type.
A simple and yet powerful structural device is object composition--objects containing and using objects. Unlike inheritance, composition is relatively trouble-free. We see why this is so.
We see, first how simple composition is done in Java. Then we look at how one to many composition is done, with arrays and with some of the library classes.
This session begins an examination of interfaces (and inheritance). Java, unlike the older languages Smalltalk and C++, separates interface similarity from implementation similarity. We look at how to use interfaces. We start to consider when to use interfaces, when to use composition and when to use inheritance. Some of the important packages of the JKD library are introduced.
This session goes into the details of inheritance and abstract superclasses in Java, and also finishes off the core syntax of Java.
We also show how polymorphism isn't just an afterthought, but a fundamental part of object philosophy.
In addition to summarising the rules for using polymorphism, abstract classes and self messaging, the focus of this session is on class, responsibility and collaboration design.
We look at and start to use streams. The principal scenario of the case study is completed.
We recommend that there are no more than 10 participants, with the best results usually obtained when there are at least 8 participants. It is possible, by negotiation and mutual agreement, for more than 10 participants to be present.
The case studies have been chosen to be realistic yet achievable. They introduce interesting problems often found in real applications. They are complex enough that they are not trivial, yet they allow a degree of completion to be attained. They are also in problem domains that most students have had some experience of. With advance planning, exercises that are relevant to the customer's business can be introduced.
Please contact John Deacon by telephone on +44 20 7498 3773; by fax on +44 20 7498 3747; by emailing jdeacon@jdl.co.uk; or by visiting http://www.jdl.co.uk
[ Home page | Courses List ]