Using Capstone's Eclipse Overlays

Most of our Java courses offer an optional "overlay" of files that support the use of the Eclipse IDE in the classroom. The instructor must be experienced in Eclipse to use these overlays; they do not teach one how to use Eclipse, but rather facilitate the integration of Eclipse into the process of teaching a Capstone Java course. Eclipse can improve classroom productivity, and its rich feedback during coding and debugging can aid students in learning the Java language and Core API.

This document provides an overview of this feature: why we're doing it, what it is and isn't, and how to use it.

Note: If you are an instructor or are responsible for setting up a classroom for one of our courses, and are looking for practical information on how to setup and use the Eclipse overlay for a specific course, you will find that information in the Classroom Setup Guide and Instructor's Guide for the course itself. This document may still be good reading! but it is just an overview, and will refer you to those documents for specifics.

Advantages of Eclipse

All our Java courseware is designed originally to be used with simple text editors and command-line tools. This helps us focus on the standards we're trying to teach -- the Java language, the compiler, various Java EE standards and tools -- and keeps the material vendor- and platform-neutral.

Still, many students and instructors are accustomed to more productive integrated development environments, or IDEs. In the Java world, Eclipse has emerged as the clearly dominant IDE: it is powerful, standards-based, and free, developed by an open-source model. Some of its most attractive features are:

Code Editor Window
  • Syntax highlighting -- notice how Java keywords, comments and the programmer's own variable and method names are distinguished visually in the editor window shown here
  • Proactive error reporting -- the programmer is advised of compiler errors even while typing new code, and with this immediate feedback can write clean code more quickly
  • Auto-completion features, allowing the programmer to save some typing and find less familiar field and method names in the Core API more quickly
  • Popup windows with API documentation that appear when one hovers the mouse over an identifier
  • Integrated testing and debugging
  • Code refactoring features that will carry out intelligent, Java-aware global replacements of names for variables, fields, methods, classes, and whole packages of code

Even so, Eclipse is not a universal choice; in fact using any IDE rubs some instructors the wrong way. (See When to Use Eclipse Overlays for more discussion of how much IDE use is appropriate.) At Capstone we've chosen to make support for Eclipse available, but not as part of the standard course materials. Rather, we've developed the Eclipse overlay as an add-on to the lab files for a given course: it is installed, optionally, after the main lab image is in place, and it can be used independently of the command-line procedures spelled out in our coursebooks. Instructors and students can even choose to mix and match their use of Eclipse to carry out one exercise but perhaps use a plain-text editor and command-line tools to work through another.

What is an Eclipse Overlay?

An Eclipse overlay is simply a file tree containing an Eclipse workspace and one Eclipse project for each example, demo, or lab exercise in a given course:

Eclipse projects and underlying lab files

With the overlay, an instructor can apply all of Eclipse's power to any or all of the exercises in the course he or she is teaching. Fans of Eclipse will enjoy the productivity boost, and many instructors see the auto-correct and feedback features of IDEs as helping the students learn the Java language more quickly. Instructors and students can code, build, test, and debug most course exercises entirely from within Eclipse.


Eclipse, in various versions and with any number of "plug-ins," offers a wide range of productivity features: simple-but-intelligent code editors, a graphical debugger, refactoring tools, version control, automatic deployment, server management, database browsing, and more. Our overlays do not take advantage of every feature of the basic workspace or of any given plug-in. They vary from course to course in their style and feature set, and we make these decisions based on a variety of factors including Eclipse's own idiosyncrasies as well as those of a specific course design. A growing number of our Java EE courses support Eclipse WTP ("web tools project"), which brings richer features for Java web applications.

It's important to check on the Eclipse overlay for a specific course in order to understand what it does and does not offer. You can find a summary of IDE support in the course outline; please contact Capstone for a more detailed description, or simply to evaluate the course.

When to Use Eclipse Overlays

As noted above, there is a range of positions on the use of IDEs in general and on the use of IDEs in the classroom. For this reason we leave the choice to use Eclipse along with our courseware to the training client and/or the instructor. Many will prefer to use Eclipse in all training; some believe it is better to learn everything in a "nuts and bolts" style rather than letting a productivity tool such as Eclipse "hide" important details and inner workings; and many are somewhere in the middle.

One common middle-ground approach is to teach introductory courses with more primitive tools first, to expose students to those nuts and bolts, and then to introduce Eclipse and to use it consistently after a certain point in the training.

In any event, if the Eclipse overlays are to be used, it is essential that the instructor be well versed in Eclipse itself, and able to walk students through basic Eclipse tasks such as opening projects, building, running, debugging, etc. These skills are not covered in our courses anywhere! So the instructor must be prepared to teach them informally as part of the classroom experience.

How to Use Eclipse Overlays

For each course that offers an Eclipse overlay, the Setup Guide will provide basic instructions including a download URL for the overlay and how to install it on the instructor's and students' machines. The Instructor's Guide explains how the overlay is organized.

The overlay workspace itself shows a ReadMe.txt when first opened; this file directs the student to an HTML page that introduces the basic workings of the overlay. Other HTML pages give details, including any specific features or limitations of the specific overlay for the specific course.

Limited Technical Support

It is important to understand that the Eclipse overlays are not considered part of the core product that is a Capstone Java course. They are intended to help instructors get the most out of the material from within the Eclipse environment -- if they so choose. It is on the instructor's authority that the Eclipse overlays should be used at all, and, as noted already, the instructor must be sufficiently expert in Eclipse itself to help students use it effectively in the classroom. We can't offer technical support on Eclipse itself.

Also, some exercises may work perfectly from the command line but imperfectly -- or not at all -- from within Eclipse. We try to minimize this, but still it can happen for a host of reasons. We ask that, if they suspect problems with an exercise, instructors always double-check the project in question by building and testing it from the command-line as described in the coursebook, before reporting it to Capstone as a code defect.

With these limitations understood, we are quite happy to hear any and all feedback from instructors and training clients about the Eclipse overlays. No complete consensus has yet emerged about how best to use this very powerful tool, and we're interested to hear how each instructor prefers to use it, and how the Eclipse overlays do or don't support a given approach. Our goal with these products, as with our courses, is to provide the best possible support for effective teaching and learning. Instructor feedback is a critical part of that process.