jGRASP: A Simple, Visual, Intuitive Programming Environment for CS1 and CS2
Below, we discuss the usage patterns of students we ob-
serve for certain key features of jGRASP: the debugger, the data
structure viewers, and the interactions pane.
STUDENT USAGE OF THE DEBUGGER
jGRASP’s debugger is ideal for beginner programmers in two
respects—first, the debugging interface is somewhat simpler
than an industry level debugging tool like Eclipse; and secondly,
the debugger’s integration with other jGRASP features, like data
structure viewers, provides a highly visual debugging experience.
Although the instructors and TAs emphasize the quality of
jGRASP’s debugger, not all students end up making use of it. In
a rough poll, we found that about 58% of CS1 students had used
We found a higher debugger adoption rate among CS2 students (77%). There are many possible explanations. It’s possible
that students who use the debugger are more likely to succeed
in CS1 and go on to take CS2. It’s also possible that those students who choose to take a second programming course tend to
be more deliberate about debugging their programs. Finally, it
could be that programs written in CS2 are complicated enough
to warrant more debugging (in other words, students run into
more bugs—or more subtle bugs—so they turn to the debugger
more). We suspect a combination of these causes is responsible
for the increased debugger usage among CS2 students.
STUDENT USAGE OF THE OBJECT VIEWERS
While we are treating the debugger and the data structure viewers as separate features here, we should again emphasize that
the two are tightly integrated; the viewers complement the debugger. For example, with the execution of a program paused
in debug mode, a student can drag out a linked list to view its
contents, and then step through the program to see how the
state of the linked list is transformed step-by-step to discover
where she went wrong (see Figures 7a and 7b).
Like debugger usage, data structure viewer adoption is low
among CS1 students, at 22%. CS1 students work with simple
to teach, 90% use the jGRASP debugger, and 90% use the data
structure viewers. But other features are better suited to teach-
ing CS1 than CS2. The interactions pane, which is good for
exploring Java basics early in a CS curriculum, finds more use
among CS1 TAs (with usage at roughly 80%) than CS2 TAs
(with usage at 70%). Executing single-line Java statements in a
REPL interface isn’t always useful for teaching CS2 topics, be-
cause exploring more sophisticated CS programming concepts
sometimes requires writing a complete program.
While TAs have a generally positive opinion of jGRASP, Figure 5 shows that CS1 TAs rate the usefulness of jGRASP higher
than CS2 TAs. We believe that jGRASP can be used effectively
in both CS1 and CS2, but jGRASP’s weaknesses, such as the
lack of code autocomplete, make it potentially less attractive for
a CS2 context. We discuss this further in the Limitations section below.
While we don’t go so far as to mandate jGRASP usage among
TAs, we’re convinced that the wide adoption of jGRASP by our
TA community contributes to jGRASP’s effectiveness in our
program. TAs can reinforce the topics learned in the lecture
using an interface common to that of the lecture, and can offer
technical support for students who are learning to use an IDE
for the first time.
jGRASP FOR STUDENTS
Although students are not required to use jGRASP in CS1 and
CS2 (except for an optional lab section), many do, as indicated
in Figure 6. In a poll of students attending their section, 86% of
CS1 students and 72% of CS2 indicated that they used jGRASP.
Why the drop in CS2 usage? We speculate that CS2 students
are less likely to be intimidated by more advanced IDEs like
Eclipse, and benefit more from features like Eclipse’s code auto-complete while working on larger CS2 homework projects. In
addition, some CS2 students took CS1 at a different school, and
are more familiar with a different editor.
Figure 5: CS1 and CS2 TAs were asked to rate the usefulness of jGRASP
on a scale from 1 (not helpful) to 5 (very helpful). CS1 TAs rated jGRASP
higher than CS2 TAs, although both groups considered jGRASP helpful.
Figure 6: Slightly more CS1 students use jGRASP than CS2, but CS2
students make more use of the debugger and the data structure viewers.