xvi
|
Preface
BlueJ is a Java development environment that is being developed and maintained by the
Computing Education Research Group at the University of Kent in Canterbury, UK, explicitly
as an environment for teaching introductory object-oriented programming. It is better suited to
introductory teaching than other environments for a variety of reasons:
■
The user interface is much simpler. Beginning students can typically use the BlueJ environ-
ment in a competent manner after 20 minutes of introduction. From then on, instruction can
concentrate on the important concepts at hand—object orientation and Java—and no time
needs to be wasted talking about environments, file systems, class paths, or DLL conflicts.
■
The environment supports important teaching tools not available in other environments. One
of them is visualization of class structure. BlueJ automatically displays a UML-like diagram
representing the classes and relationships in a project. Visualizing these important concepts
is a great help to both teachers and students. It is hard to grasp the concept of an object when
all you ever see on the screen is lines of code! The diagram notation is a simple subset of
UML, again tailored to the needs of beginning students. This makes it easy to understand,
but also allows migration to full UML in later courses.
■
One of the most important strengths of the BlueJ environment is the user’s ability to
directly create objects of any class, and then to interact with their methods. This creates the
opportunity for direct experimentation with objects, with little overhead in the environment.
Students can almost “feel” what it means to create an object, call a method, pass a parameter,
or receive a return value. They can try out a method immediately after it has been written,
without the need to write test drivers. This facility is an invaluable aid in understanding the
underlying concepts and language details.
■
BlueJ includes numerous other tools and characteristics that are specifically designed for
learners of software development. Some are aimed at helping with understanding fundamen-
tal concepts (such as the scope highlighting in the editor), some are designed to introduce
additional tools and techniques, such as integrated testing using JUnit, or teamwork using
a version control system, such as Subversion, once the students are ready. Several of these
features are unique to the BlueJ environment.
BlueJ is a full Java environment. It is not a cut-down, simplified version of Java for teaching.
It runs on top of Oracle’s Java Development Kit, and makes use of the standard compiler and
virtual machine. This ensures that it always conforms to the official and most up-to-date Java
specification.
The authors of this book have many years of teaching experience with the BlueJ environment
(and many more years without it before that). We both have experienced how the use of BlueJ
has increased the involvement, understanding, and activity of students in our courses. One of
the authors is also a developer of the BlueJ system.
Real objects first
One of the reasons for choosing BlueJ was that it allows an approach where teachers truly
deal with the important concepts first. “Objects first” has been a battle cry for many textbook
authors and teachers for some time. Unfortunately, the Java language does not make this noble
goal very easy. Numerous hurdles of syntax and detail have to be overcome before the first