BlueJ or Bust!

##AUTHORSPLIT##<--->

Can a learning environment that simplifies the teaching of programming skills help restore America's dwindling population of computer scientists?

Michael Kölling

A JONES FOR JAVA
Kölling's creation has
eased the understanding
of basic programming for
beginning high school
computer science students.

"COMPUTING, IN HIGH SCHOOL, is perceived as a very boring, nerdy activity," Michael Kölling says. "Before a computing teacher even begins speaking, three-quarters of his students have already decided they're not interested."

That knee-jerk disinterest has translated into a developing shortage of software experts in the US, a trend that Kölling, a computer science professor at the University of Kent in the UK, is working to reverse through his creation of the BlueJ open source programming environment.

High school computer science earned its bad reputation by being a notoriously difficult subject in which programming even the simplest of games requires knowledge and steps so technical, abstract, and time-consuming that the work often leads to frustration for even seasoned professionals. With BlueJ, Kölling has essentially developed a set of training wheels for novice programmers that allows them to see the fun, creative side of programming without getting worn down by impenetrable terminology and beginners' mistakes.

Developed by Kölling in 1999 as part of a research project at Monash University in Melbourne, Australia, where he was a lecturer, BlueJ provides a visually based, object-oriented programming environment that enables beginning students to create projects without delving into the more intricate areas such as syntax and classes that are typically problematic for anyone learning Java. Java, an open source programming language created in 1995 by Sun Microsystems, has become the standard programming language for the College Board's advanced placement computer science curriculum and for most college-level introductory computer science courses. Kölling originally developed BlueJ for first-year computer science students in higher education, marketing his creation at computer education conferences.

Word trickled down to high school computer science educators and many signed on without hesitation. It was then that Kölling realized the magnitude of the hole that BlueJ filled in the market. "Teaching object orientation was seen as a very difficult problem," he says. "People were really looking for a solution."

Strong demand and input from computer science educators, combined with financial support from Sun Microsystems, has allowed BlueJ to grow into a stable and reliable tool for beginning programmers and remain a free open source tool in the process. Kölling now runs the BlueJ community from his post at the University of Kent, in conjunction with a team stationed at Deakin University in Melbourne. The nine-hour separation in time zones among the team members means that someone is always available at any given time to provide immediate feedback to student and teacher queries.

Laine Agee, a computer science teacher at Memphis City Schools' White Station High School in Tennessee, began using BlueJ in her classroom during the 2002-2003 school year, the same year the College Board changed its standard on the AP computer science exam from the C++ programming language to Java. After reviewing other methods of teaching Java, Agee felt BlueJ was the way to go.

"The thing I like about BlueJ is that it's visual-- that and the fact that it was easy for me to learn as well," she says.

It's common for the standard language in computer science to change every six to eight years, requiring instructors to quickly master the new language to the point where they can teach it. The BlueJ website offers them support through the access it provides to Kölling and his team. The discussion boards on the site also allow teachers to draw support from one another, as they exchange lesson plans and programming ideas and keep each other on top of updates.

Agee found BlueJ so simple to use that she began using it to teach Java to her beginning students as well. BlueJ was such a big hit in the introductory classes that Agee teamed up with computer science instructors from two other high schools in the district to create a robot competition that required beginning students to design and build their own robots out of Lego Mindstorms kits and program the robots' movements using BlueJ and LeJOS, a Java-based language for Legos that in part takes its name from the acronym for Java operating system.

Get on the Greenfoot

THE UNEXPECTED POPULARITY of the BlueJ environment among high school computer science teachers prompted its creator, Michael Kölling, and his partner, Poul Henriksen, a research associate at the UK's University of Kent, to design Greenfoot. BlueJ was intended to teach Java-based programming to college students, so some aspects of it can be difficult for the greenest of high schoolers. Greenfoot prepares students for BlueJ with a focus on programming objects within specific scenarios. Students program wombats to find and eat leaves, or control the thrust of a rocket as it attempts a smooth landing on the moon. Like BlueJ, the Greenfoot community is run by Kölling and his teams at the University of Kent and Australia's Deakin University and is supported by Sun Microsystems.

"The students come up with their own crazy designs for robots, and they have a track on which they have to try to beat the other team," Agee says. "This was the first year my team lost, but everybody still had fun."

Not only has Agee noticed an increase in the number of her students who go on to take computer science courses in higher education since she began teaching Java with BlueJ, she even has had students who passed the AP test in their junior year and requested an independent study in computer programming for their senior year.

Like Agee, Judy Hromcik has been using BlueJ to teach Java since the 2002-2003 school year. A computer science teacher at Texas' Arlington High School, Hromcik notes that the relationship between a class and an object in objectoriented programming is one of the biggest speed bumps that students must get beyond when learning Java. "BlueJ lets students see how a class is a blueprint for an object, and that they can make many instances of that object with different variations," she says.

It's a concept that is difficult to relay in a lecture or with written notes; BlueJ uses interactive visual methods, such as coded boxes and arrows, that enable the students to see the concept in action. When students require less time to get a clear understanding of this idea, they're allowed more time to focus on more advanced aspects of the Java language, giving them an edge on the AP test.

Another aspect of BlueJ that Hromcik appreciates is the accessibility of Kölling and his staff. The BlueJ home page provides a direct link to Kölling via e-mail, and he makes a point to reply to questions or requests in a timely manner, typically within 24 hours. Although she hasn't had any issues with BlueJ proper, Hromcik has e-mailed Kölling and his colleagues in the past to ask for programming advice or for details on projects that she's seen on the site. "They're a great team," Hromcik says. "They're very involved in education, and their whole purpose, I really think, is to put out products that help us teach these materials."

The admiration is mutual. Kölling feels the freeware aspect of BlueJ encourages a friendly atmosphere within the community that is generally not a part of commercial products. The collaborative spirit is especially evident among participants on the online discussion boards. "The tone in the online discussion group is very supportive," he says. "There's a lot of community contribution in developing material and extensions to the software."

Despite the enthusiasm of the BlueJ community, Kölling emphasizes that learning BlueJ should not be the students' ultimate goal. BlueJ doesn't replace professional software development tools; at some point the students' training wheels must be removed. By working closely with Sun Microsystems, Kölling has ensured that the progression into professional tools occurs smoothly.

"BlueJ is for learning," he says. "It doesn't stand alone as a dead-end tool. But there is, then, a path that students can follow to grow from the beginning tools to the full-scale tools-- when they are ready for it." Because Kölling has enabled students to see the creative possibilities programming has in store for them, there are more of them willing to go down that path.

Jennifer Demski is a freelance writer based in Los Angeles.

This article originally appeared in the 10/01/2008 issue of THE Journal.

Whitepapers