Visualizing Java


Abstract. I’ve spent some time this summer making a programming visualizer for the Java language. Sara has spent some time this summer making a video showing the coffee roasting process for Princeton’s own Small World Coffee. I think my project has a cooler icon, but hers has a better soundtrack.

Since I came to Princeton last year, I have spent a lot of time teaching Java in their intro programming course (COS 126). What I have learned is that the most important thing you learn in a programming course is the ability to draw boxes and arrows. This helps for: keeping track of different String objects in memory; using arrays and pass-by-value/reference with them; showing objects; teaching recursion; linked lists; data structures; and so forth. If a student has learned the ability to draw their own diagrams, they should have no problem mastering programming and debugging.

In the CS Circles project, we used Philip Guo’s Python visualizer to help automate what little bit of this we could. Letting a student animate their own code means (1) less work for me in drawing, (2) the student can review the diagrams back and forth at their own speed, and (3) students can see the effects of changes in their code. So, I am thrilled that this summer I have been able to translate the backend of Philip’s fantastic project to Java.


You can try the Java visualizer here. You can click on the examples underneath the text box to see what happens. (I recommend Person, Sqrt, Stopwatch, or Forest if you are a masochist.) It’s open-source, with the code also listed on the bottom of that page. I want to thank Sasha and Dhananjay, two early adopters who have been very helpful to me in terms of improving the installer documentation and reliability. There are a lot of moving parts, so it has been quite a learning experience for me in terms of the Java Debugger Interface and related tools, as well as learning about Java synthetics.  Up next, we will install the tool at Princeton and use it for classroom demonstrations.

Meanwhile, on the more visual side of life, my fiancee Sara has been continuing her filmmaking experiences. Small World Coffee is a Princeton institution, serving locally-roasted coffee out of two locations in-town. We went on their “backstage pass” back in May, which consisted of a visit to their roastery in nearby Rocky Hill, NJ. Their staff are super-friendly and Sara made this video to show the actual roasting process, which was not part of the tour since it’s too loud and awkward to show a dozen onlookers.

Here’s the video; check out the change in bean colour during the fantastic time-lapse! You can see more on its Vimeo page; and HD is available by clicking on the bottom-right.

We are still working on integrating the technology required to add to the video one other particularly fantastic part from that day of roasting: the smell!


No Responses Yet to “Visualizing Java”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: