BlueJ is a Java-built platform for teaching and learning object-oriented programming. It illustrates the core Java OOP concepts with the help of UML (Unified Modeling Language) diagrams, a code editor, debugger, compiler and documentor. The application is designed to make Java programming a more interactive and therefore efficient teaching /studying experience.
BlueJ's approach to creating Java applications is very intuitive; the visual overview provided by UML diagrams allows users to manage basic elements part of all Java applications: classes (class, abstract class, interface, applet, unit test, enum) and packages. You may add as many elements, which your project needs and create relationships between them with the help of arrows. To each element corresponds a section of code, which is visible in the editor.
The program's interface is quite minimalistic; this means you will have to use the context menu / file menu to access options for each selected element. For the purpose of teaching however, this works great. Also, in order to enhance the austere layout, BlueJ includes key bindings support for all its functions.
While Java programming may not be the easiest course to teach or master, I found that BlueJ provides all the tools needed to make the job considerably easier. It incorporates the capabilities of a UML editor as well as IDE in an intuitive and effective layout settings.