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.