Java Experience

I am not your standard programmer by any stretch of the imagination. My formal schooling in programming includes one semester of Pascal as a High School student, and one semester of C++ as a college student. By schooling, I am a physicist. By current vocation, I am, if nothing else, an educator. Virtually from the beginning of my college experience, I have been involved in educational technology for physics. I began teaching myself Java as part of my work for Dr. Wolfgang Bauer. Since then, all the Java I know I have taught myself. The following is a list of the applets I have created thus far.

(Note: It is probably as instructive, if not moreso, to visit these applets themselves. They are all posted somewhere publically, with links provided along with their descriptions.)

 

The Lorenz Attractor

My first task as a java programmer was to create an interactive simulation of the Lorenz system. This is a system of differential equations that is a classic example of chaotic behavior in physical systems. This applet has three aspects:

  1. Numerically simulate the system. Using standard techniques of computational physics, the equations that describe the system are solved numerically.
  2. Graphically represent the simulation. The three dimensional data produced by the system are plotted to the screen. This involves projecting the data to two dimensions, and coming up with a color shading scheme to represent the lost depth.
  3. Allow the user to interact with the simulation. The user interface in this applet includes the ability to alter parameters of the equations themselves, so as to allow the user to see the many possibilities available in the system. (That is, to see how the system reacts to changes in initial conditions.) Furthermore, the user can plot multiple simulations simultaneously. Also, as with any worthwhile data plotter, the user may choose to plot the trajectories in different colors, to view the simulation from any angle, and to zoom in and out.

(Note: I have not included documentation for this applet, as it was never used by anyone but myself and Dr. Bauer. I will post something as soon as possible. In the meanwhile, to get the flavor of the simulation, set the "Stop Time" to twenty or so in press "Plot")

 

Trailblazer

Trailblazer is a project that I was very excited about, but was not able to finish. It was a side project that I began, primarily for the purpose of my own education. It expanded my experience in the realms of networking and processing files with Java. It's actual purpose was to be a visual aid for web site designers. In a secondary way, it could serve as a web browsing assistant. What Trailblazer actually does is, starting with some home page, it sniffs out all of the links. It then represents those links visually as doorways that stretch out like a web from the original doorway, which is the starting homepage. The user can then tell Trailblazer to seek out the links extending from any of those doorways until as much of the site has been mapped out as the user is interested in seeing. Trailblazer has the following features:

  1. Visual interface. As a web browsing assistant, Trailblazer can dynamically create a map of an entire web site. This map is entirely visual, with simple lines representing the connections between pages in the site, and doorways to represent the pages themselves. The doorway icons themselves have three states to indicate the state of that page: visited, unvisited, or currently visiting. Icons can be dragged around in order to create a view of the site that is convenient. Multiply icons can be selected with dragged out rectangles. All of this was done in Java 1.x, so all of the functionality had to be handmade.
  2. Organization. As has been pointed out Trailblazer creates a visual map of a web site. It automatically generates the hierarchy of pages in the site in a tree format. It is a simple matter to trim away parts of the tree that are unneeded and to expand the tree in new directions as desired. Dead links can easily be discovered with Trailblazer.
  3. String searches. A useful aspect of Trailblazer lies in its string search capability. By selecting a node or group of nodes, the user can perform a string search. In this way, a user can quickly get to needed information without having to actually download the content of every page and without searching the entire web for it. The success or failure of such a search is indicated in an intuitive visual manner. (A page's doorway icon will change to indicate presence of the string.) This feature was added as a direct result of a problem I was having where I was in need of a way to quickly find a topic covered by some piece of online documentation, which itself was not well organized or easily searchable. (Futhermore, Trailblazer was useful in this sense, as I could use it to help keep track of where I'd been in such a piece of documentation. A browser's "history" is not much help when you are making lateral movements through a web site's hierarchy.)

(Note: The link to Trailblazer given here goes to a version of it located within the Physics and Astronomy Department at MSU. Due to security restrictions, when running as an applet, Trailblazer cannot peek at the content of web pages contained on other servers. Links to thos servers will be noted, but information cannot be collected from them. Nonetheless, there are plenty of links within the department's server to provide a decent example of Trailblazer's capabilities. Please be sure to press the "Directions" button before you use Trailblazer.)

 

 

LectureOnline

The first (and only) applets that I wrote that were truly meant for public consumption were written for the LectureOnline project. LectureOnline itself is a system being developed within the Natural Science Department at Michigan State University. (Specifically, it is being developed by Gerd Kortemeyer in the Division of Mathematics and Science Education.) LectureOnline is a system which facilitates the development of online courses. Its aspects and capabilities are myriad, and I'll not outline them here. My employer, Dr. Wolfgang Bauer, played an integral role in it's conception, and created the first piece of content for it. (That content is the course PHY 231C, an introductory physics course for nonphysics majors.) My role in PHY 231 was to create java applets that teach physics concepts in a visual, interactive way. The content of PHY 231 was drawn from a CD-ROM created by Dr. Bauer which was a multimedia physics text. He had created this application in a multimedia authoring environment (Supercard) whose script capabilities were used to generate the predecessors to the simulations I wrote. Since (unlike the text and graphics on the CD-ROM) these script based simulations could not be directly ported to the web, it was my task to recreate them in Java, as well as write more of them. Altogether, I created 13 such simulations, each of which implements animation, simulation, and a simple usr interface. Rather then describe them all here in detail, it is probably most instructive to view them. They are posted here.