Introduction to IDEs
One of the most important initial choices by a computer science teacher is what IDE to use with beginning students, one that offers the necessary features, but does not require a steep learning curve that might inhibit initial student progress. Given that programming in itself is difficult enough, choosing a tool that streamlines this important learning process is crucial to student success and confidence.
An IDE is an Integrated Development Environment, which simply means an application that serves as a convenient mechanism to develop and test programs in any language, including Java. It’s partly a word-processor, and partly a debugging, compiling and executing application for the program.
There are several out there, all equally effective, some easier to use, some powerful enough for professional use. Generally speaking, in my opinion after 20+ years of CS teaching, the easier an IDE is to learn how to use, the better it is for beginning students.
An IDE essentially provides two primary functions:
- a text editor in which programs are coded
- a way to compile/debug/run a program at the click of a button
Several IDEs are available out there, most for free, some at a cost. We’ll explore four of the more commonly used ones with which I am most familiar:
- JCreator
- Eclipse
- JGrasp
- Jeliot
The best thing about all these IDEs is that they are free to obtain and use. JCreator has a paid version that is more powerful than the free version, but that is a choice you must make.
JCreator
I’ll start with JCreator (www.jcreator.com) since it is what I used for years with my students, and with which I am most familiar and comfortable. I know many teachers who use it for the same reasons. I like it because it is easy to use, no workspaces or projects necessary, just open the file and go. Also, file input is easy; just make sure the data file is in the same folder as the .java and .class files, and you’re good to go. Another thing I really like about JCreator that I have not found in other IDEs is the ability to show the output in a separate console window. It may be possible with other IDEs, but I have not yet found out how to do it in others. JCreator is free if you download the “classic” student version. Be careful though! It might say Learning Edition, and it turns out to be a 30-day trial after which they ask for money. JCreator is distributed by the Xinox Corporation (jcreator.com), and is excellent for student use. The only down side I have discovered is that the free version does not have debugging features like step in and step over, or the ability to trace variable values. There are ways to get around that though, and the ease of use definitely trumps that disadvantage. I give it 4 1/2 stars, with the 1/2 star off for the lack of debugging with the free version.
Eclipse
Let’s talk about Eclipse (www.eclipse.org/ide), which is free and open source. Many teachers and students use it, and have found it suitable, but for me it is too difficult, especially when trying to get setup and definitely when trying to use data file input. It is a professional level IDE, and many use that argument to justify using it. I disagree. A beginning programming student has no business trying to use a professional IDE, no more than a beginning student driver should be driving a high-powered Indy car. Once the student has become proficient, then it is a much more plausible choice to transition to Eclipse. It requires setting up a workspace, and then a project, and then making sure files are members of the project. That alone is intimidating for the beginner, and quickly causes frustration and the tendency to give up, in my opinion. The other disadvantage is the extra steps you must take to enable file input without designating a path. By default, the project separates the source file (.java) and the .class file into separate folders (bin and class folders), which makes it cumbersome to deal with data files. There is a way to make sure all files are in the same folder, but there are a few steps you must take, and it is not very intuitive. Some positives about Eclipse are code-completion, which just means that once you start typing a command, it shows you the rest of the command and you can just hit a key to complete it, saving some typing errors and debugging problems, and thus speeding up the coding process overall. It also has debugging features that are nice, including step in, step over and variable tracing. I give Eclipse 4 stars, with a half star off each for the necessity of workspace/project setup and the file input difficulties.
JGrasp
JGrasp (www.jgrasp.org) is the bomb! I really like this IDE, developed and supported by the CS department at Auburn University. I’ve recently begun using it in my workshops with teachers, and I really do like it! It is as easy to use as JCreator, not requiring workspaces or projects, and is easy to do file input, plus it has many other cool features, including debugging as well as a neat thing called the Canvas, that displays all kinds of cool things about your code. I give JGrasp a full 5 stars, my highest rating so far! Check out this incredible IDE at jgrasp.com, and work through their excellent tutorials to really learn how to use it best.
Jeliot
Jeliot (cs.joensuu.fi/jeliot) is another really cool IDE I came to know about AFTER I had retired from teaching, and I really wished I had known about it while I was teaching. It is produced and supported by the University of Eastern Finland (jeliot@cs.uef.fi). You really need to check this one out! It is very easy to use, but has some limitations in how much it can do. For example, it can do one-dimensional arrays, but does not yet support 2D arrays. Other than that, it is very much worth exploring, especially as a teaching demonstration tool. Here’s why. It visualizes the execution of a program by showing all the action on a “stage”. When you run a program, the curtains are drawn back, the variables and objects are drawn on the “stage” using boxes and arrows to show object referencing, and the action of the program is animated for your viewing pleasure and wonder. You can see every step of an if else statement, or looping through an array. You can speed up or slow down the action, depending on how detailed you want to observe it. It totally demystifies the abstract process of programming, especially for beginning students, and I highly recommend it as the first IDE to use in the classroom. The download comes with numerous code examples you can explore immediately, which really helps teach the beginning concepts. I give this IDE 4 1/2 stars, with a half star off for the inability to handle 2D arrays, but to me that is a minor issue.
Others
There are other IDEs out there, including BlueJ (www.bluej.org), sponsored by the University of Kent in the UK, IntelliJ (www.jetbrains.com/idea), another high-powered professional level IDE similar to Eclipse, and Dr. Java (sourceforge.net/projects/drjava), produced and sponsored by the JavaPLT group at Rice University in Houston, Texas. Not being that familiar with these, I hesitate to make any further comments about them.
Recommendations
The bottom line on IDE selection is this: pick one and try it out. See which one works best for you and for your students. Understand the pros and cons, and then make a choice and stick with it.
My recommendation:
- Jeliot first
- JGrasp or JCreator next
- Eclipse (once students reach a level of proficiency)
About Ask John
As he always emphasizes in his classes, courses, and workshops, there is no such thing as a silly question, except for the one you do not ask. John Owen has taught high school Computer Science very successfully for many years, and has a team of CS colleagues who are ready and willing to lend their expertise, experience, and wisdom to help you become a better computer science teacher. This blog is for you! Ask your questions, and he will do his best to give you sound advice that will get you back on track with whatever issues you encounter, and for which you seek answers.
Have a Question?
CS Teachers are encouraged to submit their questions about teaching CS or other aspects of CS education. Send your question to weteachcs@austin.utexas.edu and we’ll be sure to let you know if your question is featured in the Ask John column of the WeTeach_CS Blog.