Collaborative Classroom Computer Programming with JavaWIDE


In this interview, Dr. Jam Jenkins, Assistant Professor of Computer Science at Valdosta State University and creator of JavaWIDE, explains how the Java Wiki Integrated Development Environment provides a web-based Java programming environment for the classroom. What inspired you to create JavaWIDE?

Jam Jenkins: In late November 2007, I was scheduled to teach an introductory programming course and I had not yet put in my request for software installations. Then I had the idea – why put in a request at all? There should be a web-based Java programming environment. Almost immediately the second part came to me: Wikis are easy to use and promote collaboration – why not implement a wiki-based Java programming environment? In one weekend I built a primitive, but functional, prototype that could compile and run a Java applet just by creating a wiki page. I actually started using the Java Wiki Integrated Development Environment – JavaWIDE – in my class in January 2008, and it’s been under rapid development ever since.

This project is also inspired by my work as a high school teacher. As a new teacher, I had to teach computer science and computer applications courses, and I did not even have my own classroom. Juggling the system admin tasks with teaching and student discipline was overwhelming. I really wanted to teach, but so many other parts of the job got in the way. I feel like JavaWIDE can not only solve installation and configuration issues, but JavaWIDE also provides teachers with new opportunities for making the classroom more engaging and collaborative. Who is helping you with the project?

Jam Jenkins: I am currently working with Mark Hall on the development of JavaWIDE. He and I met last spring when I offered a free online course on game programming in Java using JavaWIDE and the Freely Available Networked Game Engine, FANG. Last summer, he and I met for a few days for some JavaWIDE development in some of the most needed areas. We put the code on a repository, developed a beta installation script for deploying JavaWIDE to new servers, and worked on the documentation. This summer we plan to spend a few months in a tight agile development cycle to add much needed features and enhancements.

I am also working with Drs. Krishnendu Roy and Dave Gibson here at Valdosta State University (VSU) in testing some of the new features of JavaWIDE, most recently the remote tutoring capabilities. This project also includes many other collaborators including Dr. Andy Wang from Southern Polytechnic State University, Thomas Cooper from The Walker School, and Michael Nguyen from Emory University. I have been fortunate as well to get the help of my undergraduate research assistants at VSU, William Rousse, Kai Tillman, and Darryl Taylor. The students at VSU have been very helpful in volunteering to test the remote tutoring and other features. How do you picture JavaWIDE being used in classrooms?

Jam Jenkins: I envision JavaWIDE making three large contributions: making the class coding examples more engaging by encouraging student participation; and promoting group work through the support of concurrent editing, revision control, and shared environment awareness; and revolutionizing tutoring through a shared cooperative model that mixes automation and personal interaction. I would like to see JavaWIDE promoting students participating in writing code and students helping each other more often.

We are also working on a project that will provide a pool of tutors with real-time learning analytics. This will allow the students to receive immediate personalized help just when they need it the most. My short term goal is to use JavaWIDE as a tool to increase engagement, reduce frustration and promote successful completion of introductory programming courses. My long term goal is to integrate the most useful features of JavaWIDE into professional development environments such as Eclipse> and Netbeans. What’s next for the project?

Jam Jenkins: The next big improvements are integration with git, better integration of voice over IP (VOIP) in tutoring sessions, and creating an Eclipse plugin for a smooth transition to and from JavaWIDE. Also, constantly on the radar is improving the user interface to provide more intuitive functionality. You are collecting donations on Kickstarter. How will those funds be used?

Jam Jenkins: The donations on Kickstarter are going to be used for travel support for Mark Hall. He lives in Wisconsin and I live in South Georgia. Both he and I are very busy people with many distractions during the academic year. We want to focus our time and effort on JavaWIDE during the short time we have this summer, so we would like to be co-located during this process. What’s the status of your FANG Engine project now?

Jam Jenkins: I still maintain and provide bug fixes for the FANG Engine, but I do not plan on any new major releases with substantial feature enhancements. The one direction I would love to see the FANG Engine go is toward providing an Android interface. This way you could automatically deploy both the web via JavaWIDE and eventually to Android devices, all without altering the code. I do not plan on porting the FANG Engine to Android myself, but I welcome anyone who would like to take on this project. Which other open source projects do you contribute to? Which other open source software do you use?

Jam Jenkins: First, let me say that JavaWIDE would not be possible without many open source projects including MediaWiki, Eclipse, jEdit, Artistic Style, MySQL, Apache Web Server, Ubuntu Server, PHP, git, FreeSwitch, and many others. I am driven to give back to the open source community by making my projects open source as soon as I can. I have already done this with the FANG Engine, and I plan to open source JavaWIDE as soon as I have the funding to support continued development. Anything else you’d like to add?

Jam Jenkins: I would like to encourage all teachers and faculty to try JavaWIDE in the classroom for creating at least two in-class code examples where students can contribute the code. Experience group editing, don’t just read about it. The JavaWIDE Sandbox can be used immediately by anyone without even creating an account. After trying the JavaWIDE Sandbox for a couple of in class coding examples, ask your students what they think about the experience. Warning: Your students may find it difficult to go back to the “sage on the stage” model of teaching and learning after this experience. Thanks to Dr. Jenkins for taking the time to explain his project. If you would like to learn more about JavaWide, visit the project’s Kickstarter page.