Learning Java Programming Language with Open Source Products and Technologies
By Blasius Lofi Dewanto
Abstract
This article outlines how Open Source Software can support the educational process in general and teaching and learning the Java programming language in particular. The relationship between the NetBeans Java IDE (Integrated Development Environment), FSL (Freestyle Learning) and OpenUSS (Open University Support System) will be shown as an integrated process of teaching and learning in the university environment.
Introduction
At most universities, Java has become the main programming language used for teaching programming language concepts [1]. Java is also regularly used in student coursework, practical examples, and assignments. This generally has little or no impact on the cycle of teaching and learning programming language concepts and the programming language itself in the university environment. This cycle still follows the traditional pattern:
- The teacher prepares lectures, exercises and examination materials.
- The teacher gives some introductory lectures on the subject (in this case Java as a programming language).
- The students study the subject by reading assigned books and educational materials. The students also practice the programming activities by writing their own Java programs.
- The students complete exercises and homework in preparation for the examination.
- The students can optionally participate in discussion groups to go over any questions arising from their studies.
- The students take the examination.
These days, almost all universities support the concept of teaching and learning with computer supported systems. Computer Assisted Learning and Computer Assisted Teaching (CAL+CAT) has already been fully developed and implemented at the Lehrstuhl fuer Wirtschaftsinformatik und Controlling an der Universitaet Muenster (Department of Information Systems, University of Muenster) in Germany. For the German spoken readers please refer to [2]. This model allows you to adjust the implementation of the teaching and learning process to your organizational needs. You can therefore use the CAL+CAT model to support instruction in any field, including the Java programming language.
Before we look at the model itself, let's take a look at the various types of software that are used in the CAL+CAT model. They are as follows:
- Learning Management System (LMS) is the main vehicle for managing the teaching and learning process. This software bundle is designed for management at the individual, classroom and institutional levels. Communication management software (synchronous and asynchronous communication) can also be integrated with LMS, either as part of the software package or as a stand-alone component that can be easily integrated into the LMS. The main characteristic of LMS is that the users - in this case teachers and students - need to be connected to the internet to use the software.
- Computer Based Training (CBT)/Course Authoring Package (CAP). CBT is offline software that supports the learning process locally at the student's computer. Although this type of software usually works online as well, most users prefer to use the software from a CD-ROM because of the large bandwidth required to process the CBTs' large videos and client/server interaction. CAP is normally used for developing content for CBT software.
- Java Development Tools (JDT) is the environment in which students get hands-on experience in programming with Java. JDT software is normally installed on the student's computer and is used offline. Text editors, compilers and debuggers fall under this heading.
Now that we've said something about CAL+CAT tools, we can take a look at how they are used in the education cycle. Fig. 1 gives a detailed view of how the process of teaching and learning Java can be supported by CAL+CAT software.

Fig. 1: Teaching and learning process supported by software applications
Commercial Vendor and Open Source Software Support
A wide range of commercial software developers produce applications that can be used in the educational process. Tab. 1 gives a short overview of such companies.
Tab. 1: Commercial vendors
What about open source software? Do any open-source alternatives to the above-mentioned products exist? The answer is yes! Thanks to the immense amount of activity in open source software development over the last couple of years, open source versions now exist for most educational software applications. Tab. 2 shows some open source educational resources.
Tab. 2: Open source software
Presently, the only portal for open source software
in the educational field is CampusSource (http://www.campussource.de
in German
. CampusSource is a German project that already has many projects
under its umbrella (including OpenUSS). All CampusSource projects use GPL as
their licence form. The main target of CampusSource is to bundle and integrate
available open source software in the educational area.
These open source alternatives are all as effective if not better than their
commercial counterparts, so there's no real reason not to use open source
software in the educational area - especially in teaching and learning Java
as a programming language. Open source software therefore presents a very valuable
resource for educational institutions, which often don't have the financial
resources to purchase commercial products.
Using NetBeans, FSL and OpenUSS in the Teaching and Learning
Process
For additional information about each product please refer to the pdf documents
at the end of this article [3].
Now that we've looked at the role of open source software in the teaching and
learning process, let's focus in on how three specific Java open source products
can be used in this area. This section examines the capabilities of NetBeans,
FSL and OpenUSS from two perspectives. The first perspective is
that of the user, which demonstrates how the power of these three products
come together to support teaching and learning Java. The second perspective
is that of the developer. With the power of Java, independent developers
can add new functionality to these products. Java's "learn once use everywhere"
paradigm makes it easier for Java developers to further develop open source
projects like NetBeans, FSL and OpenUSS for the widest possible market.
The integration of NetBeans, FSL and OpenUSS greatly enhances the educational
cycle for Java as a programming language. A typical CAT+CAL scenario would be
as follows (see Fig. 2):
- The teacher creates some learning materials for a Java course using FSL
Designer. These materials are called Freestyle Learning Units (FLU).
- The teacher uses NetBeans to prepare examples and exercises in Java programming.
- The teacher can also use or incorporate existing FLUs already developed
by other students and instructors.
- The students download the FLUs through OpenUSS and study them offline from
their computer with FSL Home. The FLUs would also be available on CD-ROM for
students that don't have a fast enough internet connection to download the
lessons.
- The students practice what they have learned by writing some Java programs
using NetBeans.
- The students can also discuss the materials and any questions they have
with the teacher and other students using OpenUSS chat and mailing lists.
- The teacher can post additional information and exercises to the lecture
materials section in OpenUSS.
- Other students and instructors can make their own FLUs with FSL Designer
and make them available to the community.

Fig. 2: Teaching and learning process Java with NetBeans, FSL
and OpenUSS
All of the products used in this scenario are open source, so there is no need
for the teachers and students to pay for software licences. This makes it much
easier not for both the teachers and students to get up and running. There are
also many other ways that CAT+CAL technology can be incorporated into the educational
cycle, from courses offered exclusively online to posting supplemental material
on a school website. The only limits are the bounds of your imagination!
What's more, advanced students can immediately put their Java skills to use
by helping to develop NetBeans, FSL and OpenUSS. Participation in open source
projects also gives students valuable real-world experience with large-scale
programming projects.
Open Source and Java for Education?
As Java becomes more widespread, more and more programmers are jumping on the
Java train. The very fact that Java is now the most popular programming language
is one of the main reasons why educational software should also be written in
Java. Software written in Java further supports the open source movement by
allowing users the choice of using Linux as well as Windows without limiting
its audience by writing Linux-only software.
This article shows the power of open source software in the educational area.
Using NetBeans, FSL and OpenUSS for a Java course is only one example of the
many possibilities out there. What we have to do now is help support open source
software development and integration in order to keep open source on the cutting
edge. You don't have to begin with your own open source project, just choose
one that is a good fit for you and join that project! For those interested in
the use of Java in the educational area, NetBeans, FSL and OpenUSS are a great
place to start. The success of open source educational software can bring equality
of knowledge to the internet. The one question left is: do you want to do it?
Acknowledgements
I would like to thank George Dvorak for commenting, editing and giving me a
chance to publish this article. Further, I would like to acknowledge Prof. Dr.
H. L. Grob for providing me his CAL+CAT papers.
Contacts and Project's Status
NetBeans
NetBeans (http://www.netbeans.org)
is an open source, modular IDE, written in the Java programming language. Currently
it supports Java development, but its architecture lends itself to supporting
other languages as well. NetBeans is also an extensible tools platform into
which other tools and functionality can be seamlessly integrated by writing
and incorporating modules. The NetBeans core can be used as a generic application
framework to simplify writing non-IDE applications. Since it's written in the
Java language, it'll run on any platform with a virtual machine.
George Dvorak (george.dvorak@sun.com)
Freestyle Learning and OpenUSS
OpenUSS (http://openuss.sourceforge.net)
is build as an open source project since the beginning. FSL (http://www.wi.uni-muenster.de/aw/freestyle-learning/english/eindex.htm)
is a mature product and already established within the University of Muenster.
This project is now declared as an open source project. Within a few weeks this
project will be released under GPL at SourceForge.
Prof. Dr. Heinz Lothar Grob (grob@wi.uni-muenster.de)
Dr. Frank Bensberg (awfrbe@wi.uni-muenster.de)
Jan vom Brocke (awjavb@wi.uni-muenster.de)
Norman Lahme (lahme@wi.uni-muenster.de)
Blasius Lofi Dewanto (dewanto@uni-muenster.de)
References
[1] Stewart, B. (2001): Java as a Teaching Language, at
http://java.oreilly.com/news/teachjava_0101.html
[2] The concept of CAL+CAT (all papers are in German language)
can be found at: http://www.wi.uni-muenster.de/aw/abcalcat.htm
[3] Pdf documents about Freestyle
Learning and OpenUSS.