Physics is really about objects colliding, exploding, rolling, turning, and sliding. It is about energy, radiation, and fields. It is the science that tells you why the sky is blue, why rainbows are colorful, and why the sun shines. Why is it, then, that the first exposure students have to physics are abstract pictures on the chalkboard of boxes and arrows? Is this really an effective way to teach physics?Project Description:
Studies have shown that even the best physics students, the students who do well on standardized exams, cannot apply their abstract knowledge to real life. These students can solve equations and draw free body diagrams, but do not understand what the equations and diagrams mean. For example, students could correctly draw ray diagrams of an object in a mirror, but could not correctly determine whether or not the object would be seen if viewed from different positions! These students do well on examinations because they can correctly draw ray diagrams, but do not have the fundamental concept of what that ray diagram was for.
Can students bring abstract boxes and arrows into real life context? Presumably that is why we have laboratory classes. I have taught many lab classes, from mechanics to modern physics, and I can tell you that lab courses do not significantly increase the connection between abstract and real life understanding. The problem in a real life lab is that real life is complicated. For example, a spring is a device that is only simple in abstract. In real life, a spring is neither linear (doesn't obey Hooke's Law F = -kx), nor massless, nor does the spring contract and expand equally along the length of the spring. The equations of motion learned class have only limited applicability. In real life, the acceleration of an object is almost never constant and friction is almost never negligible. To correct this, we bring in expensive equipment (such as air tracks), convoluted methods of measurements (spark tape), introduce the concept of systematic error (friction), and make wild approximations. By the time I am finished discussing all that, the physics of the experiment is almost totally lost. How can students see that physics applies just as well to their car as to our polished air track?
What I really want is an intermediate step. Instead of jumping from abstract to real life, students should be able to see the abstract concepts in action. That is where a virtual experiment comes in. On computer, I can make a spring that obeys Hooke's Law. I can also make a spring that does not obey Hooke's Law. I can add friction just as well as I can subtract it. I can easily add any arbitrary driving force. Another words, I can show the abstract and the real life side by side. I can introduce complications one by one rather than all at once as in a real lab. On the computer, I can solve problems which are not discussed in the lecture because their equations are too complicated to solve analytically (such as almost any real life experiment)! This is the goal of my physics computer project.
The project consists of Java programs, Javascript documents, and HTML documents. These programs will illustrate physical concepts and will be available on the world wide web. The premise of the project is to have a gedanken ("thought experiment") on a computer. Instead of imagining objects moving, accelerating, colliding, and bouncing, the computer simulates and animates these objects. The goals of the project are to:
- Facilitate the understanding of physics through virtual tutoring, experiments, and demonstrations
- Allow students to do experiments which would be impossible, difficult, costly, or dangerous in real life
- Give physics teachers material which is freely available on the web to supplement their curricula
- Create a set of basic objects which allows new Java programs to be written "on the fly", according to the principles of "Just In Time Teaching" (JITT)
There are three main types of programs that are being written:W hy Java?
Tutorials: A tutorial explains how to solve a physics problem in a step-by-step manner. These are usually Java programs. For example: Drawing Field Lines Tutorial - The student is given a charge configuration situated on a grid. For each grid point, the student must determine the total force on a positive test charge by adding the Coulomb force from each discrete charge given. The direction of the resultant force is the direction of the electric field line.- Experiments: These are virtual experiments. This allows the student to interact with equipment used in a physics laboratory, but where all the variables are easily controlled. Also under this heading are physics games. These can be Java programs or Javascript documents. For example: The Spring Test Applet: Students can observe natural, damped, and driven oscillations easily by changing the parameters of the spring. You can see all three cases below in screen shots of the program (note: the applet animates the ball). You can try this program for yourself at: http://www2.hawaii.edu/~jmcfatri/labs/SpringAssignment.html
![]()
![]()
![]()
- Demonstrations: A demonstration is not intended to be an interactive program. This is intended to be used in a physics lecture as a visual illustration of the concept being discussed. These can consist of HTML documents with some animated elements (such as an animated .gif image or QuickTime video) or a Java program with very simple controls.
For example: Drawing Field Lines and Equipotential Lines - This is a simple applet which computes the electrostatic field lines and equipotential lines of any charge distribution. The student (or lecturer) can place up to twenty discrete charges on the screen and determine the field lines instantly. See this example at: http://www2.hawaii.edu/~jmcfatri/labs/FieldDisplay.html
![]()
The field lines are drawn
![]()
The same charges but equipotentials are drawn
What is the advantage of using Java and Javascript?J ava Terminology used in this web page:
- Java programs can run in a browser. With the help of the Java Plug-In, most users can run complicated programs from their home, without having to buy any software. The programs can also be accessed in the middle of a lecture provided the lecturer has a computer with web access.
- Java is cross-platform. As long as the operating system in question has a current java runtime environment (jre), that OS can run the Java program. Java programs can be run in Windows, Mac, Linux, Unix, and Solaris.
- Java is Object Oriented. Object oriented languages allow the programmer to build a program using blocks of code which are called objects. Objects encapsulate functions and data. By "encapsulate" I mean that a programmer does not need to know the exact mechanics of the object in order to program with them, but instead gets all required data from built in behaviors of that object. It is then easy for even the most novice programmer to create a complicated program simply by using built in behaviors.
Currently this project is not being funded. I am doing this on my own time on a volunteer basis. I did recieve academic credit for parts of this project, under independent studies. I am trying to get computers for the physics learning center (Wat 421) so that my students can run the programs in the event that they do not have a compatible computer. My students in physics 151, 152, 170, and 272 labs have been very helpful and patient in testing many of these programs under various conditions.
I am currently writing programs from my objects, but I am focusing on programs which are applicable to my lab, rather than the physics lecture or general tutoring. I am also learning how to write 3D Java programs. I was working with Dr. Pui Lam to develop programs for the Physics170 Honors class, but the class was canceled due to low enrollment. We are now working on promoting Physics 272 Honors, for which I will write programs.