BlueJ or Bust!
        
        
        
        ##AUTHORSPLIT##<--->
Can a learning environment that simplifies the teaching of programming skills
help restore America's dwindling population of computer scientists?
  
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.