Most courses in Java concentrate on the usual explanations based on the structure of the Java language. However, as a scientist, I believe that the best way to learn a language is to solve a problem that requires some scientific thinking, and that excites the learner because the problem is interesting and because the only way to know the answer is to write a program to solve the problem. Philosophically, we can derive the equations of motion that describe the system, but there is no way to analytically predict the solution itself other than seeing what develops as time progresses. 

I presented these slides a few years ago at the (now defunct) Tennessee Governor's Academy. Therefore, some things (links, versions of software, etc.) may be out of date until I get a chance to update these slides.

In particular, NetBeans has changed its method for making a new graphical user interface (GUI) project. Instead of the process shown in the slides, do the following:

  • Create a Project/New Java Application. Uncheck Create main class.
  • Create a new package by right-clicking the above project.
  • Right-click the package and create a new Java Class. Select a JFrame Form.
  • At this point, you can create the GUI as shown in the slides.
  • When you run the GUI, you will be asked whether to use the main function in the above Java class. Say "yes."

My introduction to Java

Java the easy way.ppt
Learn  the basics of Java and how to create a graphical user interface (GUI) using NetBeans. Make a binary calculator and a "Magic" fortune teller.

Supplemental materialBinary arithmetic, SQL 

Fermi Acceleration

Enrico Fermi introduced this model of a ball bouncing between two walls (one of which is oscillating) to explain the acceleration of cosmic rays.

Fermi acceleration

It is one of the most famous problems of nonlinear Hamiltonian dynamics. The physics of the problem is simple, but the answer is complicated, and requires a computer to explore it fully.

Fermi Acceleration.ppt


Air Traffic Control

In the United States, the Federal Aviation Administration (FAA) requires every plane to be separated by at least 5 nautical miles (nm) horizontally, and 1000 ft vertically.

Collision geometry

First, I will introduce you to the problem air traffic controllers face.

Air traffic control.ppt

Then we show how to analyze and to plot real location data (TZ messages) and how to plot these data on maps (created by others) in one of the busiest sectors:

Analyzing TZs.ppt

MappingTZs.ppt  and the data for ZOB48

Finally, we show how to control the air traffic in two dimensions, although it can easily be extended to three dimensions.


 Feel free to ask me questions in the comment area.



Hello Jim

I find your page very interesting, but I could not get the documents i.e. the ppt's you had shared here.
They are not available.

Kindly please send them to me at

I want to do a private project on this topic and your slides will surely help me in getting some domain knowledge.


jarome's picture

Which do you want? I think I fixed the link to the ATC slides. Thanks for reporting it.

Owing to the growing popularity of Java, I have started learning its fundamentals. It will help me in developing mobile apps with greater efficiency. I rely on to get handy tips for Java programming.

jarome's picture

It is a lot more fun than video games.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.

Java based upon scientific examples