7 The Blue
10 Future Work
10.5 Follow-on projects
Two new projects have been started as a result of this work. Both draw heavily on experience gained with the Blue project and try to make some of BlueÕs benefits available to a wider user group.
BlueJ
We have started to develop a Blue-like system for Java. The Blue language was replaced with Java as the supported language, while the environment remains to a large extent unchanged. The result will be an easy-to-use teaching system for Java.
For this project, we are reimplementing the complete system in Java. Using Java as the implementation language will hopefully, because of its platform independence, remove the problems with porting the system to various platforms.
This project is supported by a local Australian company, Softway Pty Ltd, and Sun Microsystems.
A professional distributed environment
Many characteristics of Blue related to its integration, visualisation and interactivity can be useful for professional software developers as well as students. We are plan- ning to develop a professional software development environment that incorporates many of BlueÕs tools and techniques. This environment will also explicitly support the development of distributed applications, and execute itself as a distributed system.
CHAPTER 10: FUTURE WORK
10.6 Summary
While a large amount of work has been completed, a never-ending stream of future work continues to evolve. With a software system of this type, one cannot expect the work to be completely finished at any stage. Only two types of software exist: software that is not used and software that is continuously maintained. Since the world around us changes, all programs that continue to be used will have to adapt to different situations and expectations.
The Blue language definition is stable and will not be changed in the near future. The environment is operational and has been used with great success. It remains to be seen whether the Blue system or aspects of it will survive in the real world, on their own or as part of a future system.
11 Conclusion
Teaching object-orientation has become an increasingly important topic over the last few years. Object-orientation has been accepted as an important computing paradigm, and almost universal agreement has been reached that it should be taught at univer- sities in the undergraduate curriculum. Increasingly, the trend is towards teaching an object-oriented language in the first year.
Experience, however, shows that teaching object-oriented programming to first year students remains difficult. Although object-oriented principles are now reasonably well understood, and several important programming language designers more or less agree in their definition and interpretation of object-oriented concepts, their applica- tion and their importance, the teaching of those principles still causes teachers more problems than did previous programming paradigms.
In this thesis, we have identified the most significant problems in this area and proposed solutions. The major contributions of this work are listed below.
· We have identified and discussed requirements for an object-oriented teaching language. These requirements are formulated in general terms and may be used to evaluate any given language in terms of its usefulness for introductory teaching. They can also be used as design guidelines in the development of a new language for this purpose.
· We have identified requirements for an object-oriented teaching environment. The importance of environments was discussed and a basis established on which to evaluate environments for their suitability in teaching situations. · The most important object-oriented languages were analysed and evaluated
against the requirements. We have clearly identified strong and weak aspects of each particular language and assessed their suitability for our purpose. A similar analysis was done for some environments.
· We have designed a language that meets the requirements identified earlier. The language Blue has the potential to significantly ease the teaching of object- orientation to beginners through a unique mix of constructs which emphasise
CHAPTER 11: CONCLUSION
clarity, simplicity and conceptual understandability. Many constructs which are overly complex or redundant in existing languages were simplified while still being similar enough to other imperative object-oriented languages to serve as an ideal stepping stone to more professionally oriented systems in later years. The language design was driven strongly by a focus on its use as a dedicated teaching language, avoiding many problems encountered with languages currently used in teaching situations. The language is fully defined. Most interesting language aspects and design decisions are discussed here; a more formal language reference manual is available (see Appendix B for download locations).
· An integrated environment for teaching was designed which meets the stated requirements. This environment has many features which make it more suitable for teaching than other environments currently available. Most notable is its sophisticated support for program development coupled with a simple appear- ance and ease-of-use. The environment includes most of the important software development tools, including a project manager, an editor, a compiler, a debug- ger and a class browser. The interface is highly visual and interactive.
· For the integrated environment, we have designed an object interaction tech- nique that allows direct manipulation of objects. The user can interactively create object instances, interact with these instances (e.g. invoke operations on those objects) and interactively test individual classes. This mechanism allows incremental development of applications. Object interaction is not usually available in environments for strongly typed languages, and this facility is particularly useful in a teaching situation.
· The complete system, including the integrated environment and the compiler, has been implemented and extensively tested. It has been used in a large computer science department for first year teaching. This practical application has confirmed our claims about advantages of our design and proves the feasibility of the techniques discussed.
The Blue system as a whole demonstrates how the integrated development of a language and a carefully chosen set of support tools can lead to an environment that offers much better teaching support than existing systems on the market. The tight integration of available tools and the close relationship between the environment and the language enable the provision of functionality not previously available to teachers and students.
A large number of students (about 1500 students over two years) have learnt to program using the Blue system for their first year. Although no formal evaluation has been undertaken it has become evident through feedback from students and teachers that many of our goals were achieved.
The design and implementation of Blue has lead to the identification and development of numerous techniques and constructs generally useful for programming environ- ments, independent from its application as a teaching system. Those ideas will flow into new projects, some of which are already under development.