|
by Dana Nourie
July 11, 2002 -- The Java programming language serves well as an introduction to programming because it provides a clean implementation of object-oriented concepts, and its popularity encourages teachers to teach it. However, object-oriented concepts are not easy to teach or learn. Compounding this problem are the difficulties students have setting up the Java platform, learning command-line commands, and understanding class paths and file systems. Many textbooks do a fair job of sorting out many of these problems, but still skimp on the complex concepts behind object-oriented programming. A tool that can get past the platform setup problems and allow students to visualize objects and their relationships would be ideal. BlueJ, a simple IDE, written in the Java programming language, does just that. The BlueJ environment was developed as part of a a university research project for teaching object-orientation to beginners. The system is being developed and maintained by a joint research group at Monash University in Melbourne, Australia, Maersk Institute at the University of Southern Denmark, and is supported by Sun Microsystems as a teaching tool for object oriented programming. The application runs on top of the Java 2 Platform, Standard Edition (J2SE) and uses the standard compiler and virtual machine. It also includes:
BlueJ is a simple IDE that encourages experimentation and exploration through simplicity, visualization, and interactivity. Simplicity in Setting Up and Using BlueJMany teachers do not use an integrated environment because of problems with finding a suitable one. Many IDEs have so many features and are so complex that they take too much time to learn. But without an IDE, students must work from a command line and spend considerable time becoming familiar with UNIX or DOS instead of learning programming. Students are frequently confused in these environments, and the effect can be discouraging. BlueJ offers simplicity that other IDEs do not. Setting up BlueJ The BlueJ environment is easy to install and easy to use. There is no need to set up class paths, or make changes to operating environment settings. You simply specify the directory where J2SE is installed when the BlueJ install program asks, and that's all you need to do. In addition, BlueJ runs on the Solaris, UNIX, Macintosh, and Windows operating systems. "BlueJ works wonderfully as an educational IDE with just enough features to make it useful without being cluttered," says Dave Musicant, Assistant Professor, Carleton College, Department of Mathematics and Computer Science. "I use BlueJ for classroom demonstrations as well." Using BlueJ BlueJ's ease of use makes it popular with students and teachers alike. Students learn to write, compile, test, and debug--all within the same tool, and without a lot of instruction about the BlueJ IDE itself. "Students do not need to invest a large amount of time learning the BlueJ environment before working with it," says Kelsey van Haaster, Assistant Lecturer with the School of Computer Science and Software Engineering at Monash University. "We can focus on features or issues we consider important and ignore the rest. Students like it that BlueJ is a small download--and it's free." There are more powerful IDEs available, such as Forte for Java, but with power comes complexity. The simplicity of BlueJ allows students to get to work on understanding programming concepts right away, and instructors can teach programming almost immediately without belabored lessons on using the IDE itself. "As a visual teaching tool, BlueJ has excellent features and provides all the functionality I need for creating small short-term projects and assignments," adds Haaster. Visualizing Java Programming Concepts
Many Java programming concepts are abstract, such as classes and objects, methods and fields. The Java programming language can be confusing and complicated right away for many beginning students. In fact, it can even be a challenge to programmers coming from a procedure programming language like C. Teaching diagrams (with text) help illustrate object-oriented concepts, but seeing the process at work makes it that much easier to learn. BlueJ does just that by diagramming classes and objects in UML-like format. "Visually, BlueJ makes a clear distinction between classes and objects: The classes appear in the class-diagram area, and the objects appear on the object work bench in red," says David J. Barnes, Lecturer in Computer Science at the University of Kent at Canterbury. In this way, students can see a class and an object and understand exactly how you get an object from a class. "This is a concept students would otherwise find difficult to grasp. Seeing multiple instances helps to reinforce the fundamental OOP principle of one class/multiple objects." In addition, the diagram shows the relationships between classes, so students have a clear understanding of fundamental OOP concepts before they've even seen any code. This allows teachers to take the Object first concept into reality without having to confuse students with syntax details.
The simple subset of UML diagram notation allows for migration to full UML in later courses as the student progresses. Even the simple BlueJ text editor color-highlights keywords, so they are easy to skim or search for. The menu bar contains the most common features needed in a simple text editor, and also includes a handy Compile button. In addition, lines are numbered for easy reference. This is especially useful when error messages include the line number near where the error is encountered. Error messages normally printed to the console appear at the bottom of the screen. BlueJ also serves well for demonstration purposes. "I used to prepare a lot of PowerPoint slides," says Michael Trigoboff, Ph.D., Computer Information Systems and Computer Science, Portland Community College, "but after awhile I just demonstrated code in BlueJ. I've totally dropped PowerPoint slides, except for the introductory lecture, and just do the code in the BlueJ IDE."
Interacting with Projects in BlueJIn addition to illustrating how classes and objects work, BlueJ lets students create objects and interact with methods: pass in parameters, call methods, and receive a return value. In fact, a student can create an object and call its methods as the first activity.
This kind of interactivity lets students directly experiment without having to get directly into the text editor, change code, save, and recompile. In fact, BlueJ allows students to grasp concepts such as classes, objects, methods and parameters in a concrete manner before even looking at Java programming syntax. A shortcut can create an object with a click of a button, and change methods by simply typing in text areas. Once general OOP concepts are understood, instructors can move on to teaching the details of Java syntax. Students also learn a lot by watching the instructor write and interact with the code. "I use BlueJ to demonstrate practical points," says David J. Barnes. "When talking about conditional statements or iteration, I can step through the code with the debugger to provide an illustration of control-flow concepts. I also program solutions to assignments in front of students using BlueJ. This way they get to see the development process in action, including the mistakes we all make!" When students can watch a teacher create classes, instantiate objects, call methods, and receive values, they learn faster. With BlueJ, it's all contained in one simple IDE, so students are not confused by watching an instructor write code in a text editor, then jump to the command line to compile and run, then go back to the text editor to make changes and demonstrate more code. Teachers can reveal code or keep it hidden behind UML-like diagrams if they so desire. In addition, because BlueJ is naturally so demonstrative, instructors can eliminate the need for other software programs like PowerPoint. BlueJ provides all the visuals students need to learn Java programming basics. SummaryBlueJ is a simple IDE ideal for teaching the Java programming language and concepts. Besides writing code in a simple text editor and compiling the code in the same place, instructors can demonstrate:
The fact that BlueJ is free helps schools and students on tight budgets, but its real strength is in its simplicity, its power to make abstract programming concepts concrete, and its ability to allow instructors to demonstrate and write code in a visual way. "BlueJ hasn't changed the way we teach, but rather has provided an invaluable aid to our classes," says David Musicant. "Our methods for teaching Intro to Computer Science vary from instructor to instructor: Some spend more time in the classroom, others do significant amounts of lab work. In any case, none of us use BlueJ to its maximum potential." "The high school teachers that I instruct are generally extremely reluctant to move to Java for the AP exam. BlueJ's object bench gets them excited, and seems to help promote acceptance of the Java programming language." See Also
BlueJ Org
New to Java Programming Center
Java Technology Fundamentals Newsletter | ||||||||
|
| ||||||||||||