Skip to content
CMO & CTO
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

  • Digital Experience
    • Experience Strategy
    • Experience-Driven Commerce
    • Multi-Channel Experience
    • Personalization & Targeting
    • SEO & Performance
    • User Journey & Behavior
  • Marketing Technologies
    • Analytics & Measurement
    • Content Management Systems
    • Customer Data Platforms
    • Digital Asset Management
    • Marketing Automation
    • MarTech Stack & Strategy
    • Technology Buying & ROI
  • Software Engineering
    • Software Engineering
    • Software Architecture
    • General Software
    • Development Practices
    • Productivity & Workflow
    • Code
    • Engineering Management
    • Business of Software
    • Code
    • Digital Transformation
    • Systems Thinking
    • Technical Implementation
  • About
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

BlueJ in Education: Teaching Objects Clearly

Posted on December 24, 2007 By Luis Fernandez

BlueJ keeps popping up in my inbox this month. With NetBeans 6 freshly out, Eclipse Europa still going strong, and Sun pushing Java hard in schools after freeing the source, a lot of teachers are choosing tools for the next semester. The question sounds simple: what should a first time Java student use to learn objects without drowning in menus and wizards. My short take as a practitioner who also teaches on the side: BlueJ teaches objects clearly, and that clarity is the point.

Context

We have great choices right now for a Java IDE. Eclipse has superb refactoring and plugins for everything under the sun. NetBeans 6 arrives with a cleaner editor, a sweet GUI builder, and solid profiler. DrJava focuses on student friendliness. jGRASP brings those CSD visualizations that some folks swear by. In that sea, BlueJ looks small on purpose. It is not a general purpose workhorse. It is a teaching tool that puts objects first. If you want students to see objects being born, poked, and messaged before they ever write a full program, BlueJ is the sharpest knife in the drawer.

Definitions

BlueJ is a Java development environment created for learning and teaching. It was designed by educators and it shows. When people say objects first, they mean students interact with instances straight away, not only after they have learned public static void main and a dozen language details. BlueJ’s core ideas are:

  • Class diagram as home base: Classes appear as boxes in a simple diagram. It is not a full UML editor. It is just enough to see relationships.
  • Object bench: You can create an object of any class with a click, then it sits on a bench like a real thing you can prod.
  • Interactive method calls: Right click an object, pick a method, pass parameters in a dialog, see the result or a new object pop onto the bench.
  • Inspectors: Open an object and peek at fields, watch state change across calls.
  • Lightweight editor and compiler: No projects and targets and builders to set up. Just classes, edit, compile, run.
  • Simple testing support: You can record interactive calls and replay them as tests. It lowers the barrier to the habit of testing.

There is nothing flashy here. The power is in seeing objects as objects, not as lines in a console. That is the pitch.

Examples

Here is how an early lesson plays out with BlueJ. You start with a tiny class that models something simple. Say a BankAccount with a balance and two methods, deposit and withdraw. The class box sits in the diagram. Students right click it, pick new BankAccount, enter a starting balance, and an object appears on the bench. They right click the object, call deposit with 50, open the inspector, and the balance shows the new number. Call withdraw with 25, watch the state change. If you have a method that returns a Receipt object, that new object lands on the bench too. You can chain calls across objects without writing a runner class.

Now switch domains. A simple Team with a list of Player objects. Create a Team on the bench. Create two Player objects. Call team.addPlayer on each. Call team.totalGoals and see the return value. Open the inspector for team and peek at the list. You just walked through aggregation with zero ceremony. The same move works with a Deck and Card, or a Library and Book. The visual feedback nudges students to ask good questions about state, identity, and behavior.

Later, when you introduce inheritance, the diagram shows a clean arrow from a subclass to its parent. Make a subclass instance on the bench, send it a method that is overridden, and you get an immediate feel for dynamic dispatch. No need to write a big switchboard in main just to prove a point.

I like BlueJ for exceptions too. Trigger a bad withdrawal, get feedback right away, then step back and improve the class. The loop of change, compile, experiment is tight. Students see that objects have contracts and that methods either do the thing or complain in a defined way.

Counterexamples

BlueJ is not a silver bullet. If your intro course is really a ramp into big project life after week two, BlueJ will feel small. There is no built in Subversion support. No Maven. Ant is a manual setup. The editor is fine for small classes, but refactoring tools in Eclipse and NetBeans save the day once you cross a certain size. If your class leans on sophisticated GUI builders, NetBeans with Matisse is the easier sell. For folks who want a constant REPL style experience, DrJava has a great interactions pane. If you rely on code structure diagrams across multiple languages, jGRASP gives you those CSD views.

There is also the culture side. Some students feel that using BlueJ makes them less of a real developer, because it does not look like what their friend uses at the startup downtown. That feeling matters. The fix is to set expectations up front. BlueJ is for learning objects, messages, and state without noise. You can and should move to a full IDE once the mental model is solid.

Decision rubric

If you are choosing a Java IDE for teaching, here is a quick rubric you can apply. Score each item from low to high for your context, then see which tool matches your needs.

  • Audience: Absolute beginners or students with prior coding background. BlueJ shines with first timers.
  • Week one goal: Do you want students to write a full program, or to touch live objects. If it is the second, BlueJ wins.
  • Scale of examples: Tiny to small projects fit BlueJ. Medium and up pushes you toward NetBeans or Eclipse.
  • Tooling needs: Version control, build scripts, and code metrics point to the big IDEs.
  • Visual learning: If seeing objects and class links helps your class, BlueJ and jGRASP are strong.
  • Testing habit: If you want tests from day one without setup, BlueJ’s record and play is friendly. For full JUnit flows, NetBeans and Eclipse are more complete.
  • Hardware constraints: Old lab machines like BlueJ and DrJava. Heavy plugins in big IDEs can drag.
  • Exit path: If your course ends with a team project that must ship, plan a mid course tool shift. BlueJ then Eclipse or NetBeans is a smooth arc.

One extra factor for teachers: classroom control. Fewer knobs mean less time playing tech support and more time on ideas. BlueJ helps here. Students spend less time hunting through menus and more time thinking about what messages to send to which object.

Lesson learned

In teaching, the tool is part of the lesson. BlueJ makes objects tangible. That is its gift. When a student can point at an object on the bench, open it, and watch numbers change after a method call, they get the heart of object oriented programming. The rest of Java feels less scary once that picture is in place.

If I map out a semester, I like a split. Start with BlueJ for the first six to eight weeks. Use it to ground classes, fields, methods, relationships, exceptions, and testing. Then pick a path. If your students will build desktop apps, or you want an all in one package with a friendly vibe, move to NetBeans. If your focus is tooling depth, refactoring drills, and plugins for everything, move to Eclipse. Keep a light touch while switching. Port two familiar exercises into the new IDE so the environment is the only new thing.

There is room for play too. If you want to hook students with simple worlds and actors, Greenfoot sits in the same family and pairs nicely with BlueJ’s worldview. You can move back and forth without whiplash.

The bigger lesson is not about a brand of editor. It is about reducing ceremony at the start and putting ideas in front. The more we flatten the setup cost, the easier it is for students to explore, make mistakes, and fix them. BlueJ keeps that promise. It is small, opinionated, and honest about its scope. For teaching objects clearly, that is exactly what we need.

If you are picking for spring, try this simple test: hand a student a short class and ask them to create an object and make it do something. Watch the time from zero to first interaction. With BlueJ, that first aha arrives fast. That moment is gold, and it sets the tone for everything that comes after.

Bottom line: Use BlueJ when your goal is clear mental models and early wins. Switch to a bigger IDE when the project demands it. Keep students focused on objects and messages, not on menu archaeology. That is good teaching and a good developer habit too.

Productivity & Workflow Software Engineering

Post navigation

Previous post
Next post
  • Digital Experience (94)
    • Experience Strategy (19)
    • Experience-Driven Commerce (5)
    • Multi-Channel Experience (9)
    • Personalization & Targeting (21)
    • SEO & Performance (10)
  • Marketing Technologies (92)
    • Analytics & Measurement (14)
    • Content Management Systems (45)
    • Customer Data Platforms (4)
    • Digital Asset Management (8)
    • Marketing Automation (6)
    • MarTech Stack & Strategy (10)
    • Technology Buying & ROI (3)
  • Software Engineering (310)
    • Business of Software (20)
    • Code (30)
    • Development Practices (52)
    • Digital Transformation (21)
    • Engineering Management (25)
    • General Software (82)
    • Productivity & Workflow (30)
    • Software Architecture (85)
    • Technical Implementation (23)
  • 2025 (12)
  • 2024 (8)
  • 2023 (18)
  • 2022 (13)
  • 2021 (3)
  • 2020 (8)
  • 2019 (8)
  • 2018 (23)
  • 2017 (17)
  • 2016 (40)
  • 2015 (37)
  • 2014 (25)
  • 2013 (28)
  • 2012 (24)
  • 2011 (30)
  • 2010 (42)
  • 2009 (25)
  • 2008 (13)
  • 2007 (33)
  • 2006 (26)

Ab Testing Adobe Adobe Analytics Adobe Target AEM agile-methodologies Analytics architecture-patterns CDP CMS coding-practices content-marketing Content Supply Chain Conversion Optimization Core Web Vitals customer-education Customer Data Platform Customer Experience Customer Journey DAM Data Layer Data Unification documentation DXP Individualization java Martech metrics mobile-development Mobile First Multichannel Omnichannel Personalization product-strategy project-management Responsive Design Search Engine Optimization Segmentation seo spring Targeting Tracking user-experience User Journey web-development

©2025 CMO & CTO | WordPress Theme by SuperbThemes