Cut The Knot!An interactive column using Java applets
by Alex Bogomolny
In the fall, my son will be entering Case Western Reserve University, Department of Biomedical Engineering. The notion that he is leaving our home takes getting used to. Around here, the upcoming event is very much on everybody's mind. Everyone is concerned and everyone is trying to get involved. So I too learned a little about what awaits my kid about one month from now. Two items related to the event caught me by surprise.
That the students are expected to arrive on the campus with their own computers is a sign of the times. But look at the minimum recommended configuration they are supposed to own: Intel PII/300 mhz, 64MB RAM, 17 inch monitor, 24x bootable CD-ROM, 4GB hard drive, and some more. Like other parents, we shall not let our son down. But conforming to the recommendations means that David will be enjoying a better computer than I use for my own work. Talk about the next generation!
Some thirteen years ago, at a conference on parallel computations at the University of Minnesota, a speaker from Cray Research was describing the forthcoming Cray-3, if the memory serves. He mentioned that the main problem for the development team at that time was logistic: the machine was so small that the question was how to shield a passer-by from the temptation to just sweep it off of somebody's desk. Well, a Pentium is not a Cray yet, but who would have imagined of all this power sitting on a freshman's desk a few years back? At this rate, the university may insist on a new, more powerful, computer by the time my kid earns his degree.
Here is the second item: at CWRU, every engineering freshman takes ENGR 131, Elementary Computer Programming (an introductory course in algorithmic problem solving). Well, that's good; I hope that on a fast Pentium PII/300 machine my kid will be able to learn programming fast. What's the surprise? Pascal is gone! In this introductory course, they use C++ "to illustrate how programming concepts can be used to solve engineering and scientific problems." Is FORTRAN also gone? (It well may be because ENGR 131 is a prerequisite for ECMP 251, Numerical Methods I.)
So, at CWRU, they found C++ safe and convenient enough to teach it to the freshman class. Is it indeed? (C++ is still a superset of C, notorious for its permissiveness.) The appropriateness of C++ for a beginning programmer is likely to be due to a combination of factors, not the least among which is the power of the development machine, which allows support for more sophisticated development tools than were feasible even 10 years ago. What a developer works with nowadays is no longer a lone compiler, it is an IDE, an Interactive Development Environment, with a host of multimedia features and built-in Web connections. In addition, the modern multitasking systems will rarely need rebooting even when a single program crashes - the whole learning and development setup has matured and has grown safer and more stable. And, of course, it does make sense to teach the language most widely used in practical applications. (Probably following the general tendency, R.Sedgewick, currently of Princeton University, published, in the last 15 years, Algorithms with Pascal as the programming environment, and then successively Algorithms in C and Algorithms in C++.)
I believe only one other language - Java - is gaining acceptance at the rate comparable to that of C++. For a while at least there will not be competition between the two. Although general purpose, Java is intended and perceived as the language of the Web, the language for sharing and presenting information on Internet. Java inherited many of C++ constructs, in particular, in both languages symbols "||" and "&&" stand, respectively, for the disjunction (logical OR) and conjunction (logical AND) operators. But it is better designed, safer, and may be even suitable for teaching and use on a precollege level. Isn't multimedia, networked instruction is what we all are looking for?
On a more mundane note, I was often asked about the tools I use to create drawings and diagrams for my site. Visitors usually complain that none of the sophisticated painting programs in their possession is suitable for accurately drawing simple geometric figures. The plain truth is that I found that the fastest way to generate a diagram is by simply programming it in Java and subsequently grabbing it from the screen. The only reason not to use applets as a substitute for pictures is the total size of files involved. However, using an applet may pay off if the diagram is just a little interactive. Remember the times we live through: faster communication links are also around the corner.
At this point in time it is no longer a question whether we should use computers to teach mathematics. It is possible to do without, but why would we? If you can give more, why give less? What reason might there be to ignore tools like Mathematica or Geometer's Sketchpad? The answer to a related question - Do we need programming to teach (or learn) mathematics? - is less straightforward. We probably do not. Might it be useful? You bet. Just as (at least at CWRU) C++ is a must for engineering students, I would suggest that Java is fast becoming an indispensable tool for future math teachers.
Hypocycloids are curves traced by boundary points of a circle rolling without slipping on the inside of another circle. Hypocycloids belong to a more general family of curves - hypotrochoids - traced by points not necessarily on the circumference of the rolling circle. The applet below draws both families of curves. Click anywhere on the drawing surface to set a point to be traced during the motion of the circles. You can select points to be traced before or after the motion started.
One circle in the interior of another is enough to draw a family of hypotrochoids. I draw two circles to illustrate the Double Generation Theorem, discovered in 1725 by Daniel Bernoulli. The two internal circles touch the bigger circle as well as each other. Consider the point common to the two small circles when both are at rest. As the circles are set in motion, that point traces two curves due to its being on the boundary of both circles. The Double Generation Theorem states that these two curves coincide. You can drag the center of one of the circles to modify their radii. The blue points (there are twenty of them) help set the ratio of the two radii to the desired value. Ratios 2,3,4,5 are quite easy to obtain.
When two small circles have the same radius, the cycloid degenerates into a straight line segment, the fact known as Copernicus' theorem. More explicitly, Copernicus' theorem states that a point on the circumference of a circle of radius R rolling without slipping on the inside of a circle of radius 2R, traces a straight line segment. From it we get one of several known ways to convert circular motion into rectilinear. When we first encounter it, this result is startling, although the theorem is quite elementary. Does having two rolling circles help internalize the result?
All four cited references contain a chapter devoted to the cycloid family. The first two are classical references. The third is a very informative and well written book by Eli Maor. As one would expect, both theorems mentioned above are given trigonometric proofs. The last reference is by now a rarity which must be regretted. The book was written by two professors at the Moscow State University. Both authors took an active part in the correspondence school created by Prof. Gelfand and his collaborators. As in other books produced by the school, the book is rich in material presented in a very accessible way but never at the expense of the rigor.
Alex Bogomolny has started and still maintains a popular Web site Interactive Mathematics Miscellany and Puzzles to which he brought more than 10 years of college instruction and, at least as much, programming experience. He holds M.S. degree in Mathematics from the Moscow State University and Ph.D. in Applied Mathematics from the Hebrew University of Jerusalem. He can be reached at email@example.com
Copyright © 1997 Alexander Bogomolny