Although Smalltalk is rapidly gaining popularity and practicality, and is increasingly a serious and credible application development environment, it is unlikely to be the implementation language for many application domains. It is generally agreed, however, that whatever your intended application of object-orientation and whatever your intended object-oriented programming language, Smalltalk is an excellent language for learning object-oriented programming and for providing a good foundation of object-oriented design principles. It is also a "small" and elegant language and substantial progress can be made in the three days of the course. By contrast, teaching object-orientation via C++ is very much more difficult. It is a large language with an obscure and idiosyncratic syntax that can seriously impede the acquisition of skills in OO. Although C++ will almost certainly be the target language for many projects, it is widely accepted that the necessary insights and "cultural shifts" can be more successfully gained from Smalltalk and then transferred to C++. This seems to be especially true for C programmers who are moving to object-orientation.
Participants should be practising software engineers who already know and use a modern, high-level programming language. They will be wanting to understand and practice the correct use of object technology and might even be considering Smalltalk 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 Smalltalk environment is introduced.
The various terms of object-orientation are defined and we begin the introduction of the themes of object-orientation with encapsulation using objects, and the inversion of normal programming.
We look at how objects and messages are implemented in Smalltalk.
The case-study is introduced and we begin to consider the abstract data type and object classes.
This session begins an examination of inheritance. Smalltalk, in common with C++, shows its age in the way that inheritance is provided. We look at the right and the wrong ways to use inheritance, and we begin to look at composition as another, less problematical architectural relationship.
This session offers an insight into what it really means to orient yourself around objects. Unlike all the other object-oriented languages, everything in Smalltalk is an object or a message. Understanding how Smalltalk avoids having if-else and while-do syntax can be very illuminating as to the power and elegance of objects and an object-orientation.
We also show how polymorphism isn't just an afterthought, but a fundamental part of object philosophy.
This session introduces abstract classes and self messaging as two more key techniques for object-oriented design.
We study these and more composition by introducing and using the collection classes and the magnitude classes.
In addition to summarising the use of polymorphism and to surveying the remaining Smalltalk browsers and tools, the focus of this session is on class, responsibility and collaboration design.
The rules for the wise use of inheritance are summarised. Streams are introduced. 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 Matrice by telephone on +44 7010 704705; by fax on +44 7010 704706; by emailing bookings@matrice.co.uk; or by visiting http://www.matrice.co.uk
Questions or problems regarding this web site should be
directed to webmaster@matrice.co.uk.
Copyright © 2005 Matrice. All rights reserved.
Last modified:
Tuesday, 07-Jun-2005