Prior to 1995 the only reason to use web pages as opposed to paper handouts was that one could insert links in the document so that a group of interrelated documents was connected in an appropriate way. This allows easy navigation, for instance from a technical term back to the point in a previous lesson where it was defined. An example of such an educational use is a set of graph theory lessons [1] that I developed with support from several CECA grants.
The web has of late become a lot more interactive. Several technologies allow a web page to mimic any of the other standard media like slides, movie projectors, sound tracks etc. Of particular interest is the use of Java in education. Java is a computer language in its own right like other languages the reader might be familiar with, e.g., C++ or Basic or Pascal. What web authors find fascinating about Java is the ability to produce applets. These are programs that will run inside a web page. The applet is allocated an area on the web page and some memory and operates like a little computer within the web page. This is a very malleable medium for us to shape and use as we please. In [2] I talk about some of the ways in which applets can be used to enhance lessons.
A second objective, perhaps in the long run a more important one, was to disseminate the techniques used to write applets. The project was deliberately developed in a very transparent way to allow others to take the code apart and study how it is put together. All the source code is available at the web site with copious notes for interested parties to download. Students of Java might find it a good project to rewrite the applets using Java 1.2, while teachers wanting to learn how to write lessons using Java might write their own HTML text in which to insert applets found at this site using the applet tag.
I intend as a longer term objective to apply for external grants to fund the development of more such materials.
The second step was to consider the content of the lessons and how best to present the material, bearing in mind the level of mathematical experience the students will bring. For each of the three transformations, translation, reflection, rotation, I wanted an applet to familiarize the student with the transformation when applied to a simple object like a circle, an applet to study the transformation using Cartesian coordinates, an applet that transforms polygons, and an applet that applies the transformation to objects drawn by the student using mouse as a paint brush.
The third step was to consider the way that the student would interact with the applets, the user interface. Here I considered the various components that would be in the applet and how they would be arranged. I opted to use the mouse as the principal way for the student to control and enter data in the applet. The applet writes information to a label. In general I stuck with generic components (buttons, choice boxes etc.) which the user would already know how to use although for rotation I manufactured my own component to adjust the angle of rotation. I tried to make the user interfaces as uniform as possible for all the applets to reduces the amount of learning a student has to do when they come across a new applet. The colors of the applets are controlled using parameters in the HTML applet tag.
The fourth step was to decide what strategies to use while writing the applets. I have a more detailed technical discussion of that in the notes but key ideas are graphics programing techniques for smooth animation, deciding on data structures that will best hold information needed and planning how the various pieces (classes) will interact as the applets run.
Then came the actual writing and debugging of the code. Again, for the interested there is a detailed technical discussion of that in the notes. The idea was to reuse the same code whenever possible. For each transformation, the applets depend upon being able to find the image of a point. The key classes encapsulate the mathematical solutions to the following questions, the first of which is trivial:
Once the applets were written I assembled the lessons by writing the web pages and inserting the applets using applet tags. The lessons were then be made available on the web.