Interactive Learning for
Signals, Systems, and Control
Steven G. Crutchfield              Wilson J. Rugh
       CS Department                   ECE Department
          Stanford University           Johns Hopkins University
        Palo Alto, CA 94305 USA     Baltimore, MD 21218 USA



Use of the World Wide Web to facilitate learning of basic, theoretical, technical material is described in terms of our experience in developing interactive demonstration and exercise modules focusing on Fourier analysis, convolution, the sampling theorem, and elementary control systems. Early attempts involved multimedia presentations and downloadable MATLAB M-files, or server computations initiated by CGI forms. More recently, Java applets have been used to improve immediacy and interactivity while dramatically reducing server burden. Currently we are integrating audio with the demonstrations, and developing Interactive Lecture Modules as possible replacements of classroom lectures for certain types of material.



Our exploration of new issues and potential benefits in the use of the World Wide Web for engineering education began in September, 1995. The effort is focused on the development of interactive exercise and demonstration modules for fundamental topics in signals, systems, and control. These modules use multimedia techniques to present material in ways that are different from traditional textbook or lecture treatments and to involve the user in an interactive fashion. For example, Joy of Convolution invites the user to sketch with the mouse signals x(t) and h(t) to be convolved. Then in a separate window the user clicks on a v-axis to set the value of t and display x(t - v) and h(v). Other windows display the product x(t - v)h(v) and the convolution

All windows are updated as the t-value is dragged with the mouse. Of course the best way to review the demonstrations is to point your Web browser to

A list of demonstrations available as of this writing is given in the Appendix.


This effort is driven by a few observations/assumptions developed from experience. These are stated below, perhaps more as aphorisms than precepts, followed by a brief comment.

1. Fundamentals are fundamental. In fields such as signal processing and control systems, analysis and design techniques often depend on basic mathematical descriptions in a way that is ignored at the practitioner’s peril. This strongly influenced our choice of topics. We try to focus on basic concepts that students find difficult or concepts that do not lend themselves to simple analytical treatments.

2. Passive learning is an oxymoron. The developed exercises make use of the computer capabilities associated with the Web to involve the user in immediate interaction. We know that curmudgeons might wonder what has happened to quiet study and deep thought, and we offer only the observation that active engagement with the material at least provides motivation for further thought.

3. Visual learning is not just for kids. We will not belabor the notion that years of television influence the way information is accessed. Also it can be argued that the educational community has not made full use of visual learning techniques enabled by modern computer graphics. Several of our demonstrations essentially provide an interactive visualization of basic mathematical or technical concepts.

4. Anytime can be a good time to learn. The Web is never, or at least seldom, unavailable on today’s campus, or tomorrow’s world, and this accessibility avoids the logistical and scheduling difficulties of traditional "enrichment’’ practices such as showing movies or performing laboratory demonstrations.

We should note that there are many other educational aspects of the World Wide Web that are not central to our interests and activities, but are no less important. These include distance learning (remote instruction), multimedia collections of reference resources, simulation games related to engineering, and so on. For recent reports of a variety of activities in the systems area, see [1 - 4]. Also there is rapidly increasing activity that is closely related to our interests. For lists of Java applets for engineering education, see [5] and [6].
Development Experiences

Two major issues have been addressed in the course of developing these demonstrations. The first issue is to maximize clarity and simplicity while avoiding text on the screen. Many current projects involving educational material on the Web require considerable reading from the screen, with the use of hypertext links to connect various concepts. Our approach is to minimize reading, use multimedia techniques to compliment text and lecture, and focus each demonstration/exercise on a single core concept. We design our demonstrations to encourage, if not demand, thinking about and interacting with the material in a different way from textbook or lecture presentations. Because the demonstrations are used in an unsupervised environment, simplicity and clarity are key features.

The second issue involves computational burden. World-wide availability of the interactive demonstrations clearly has the potential for overwhelming the computational capabilities of a server. Our approach to this in the earliest demonstrations, Harmonic Phasors and Fourier Series and Magnitude and Phase Spectra, was to offer a prepared multimedia presentation and a down-loadable MATLAB M-file so that further interactive exploration of the topic would be run on MATLAB on the student’s machine. While this solves the problem of server burden, it removes an important immediacy aspect from the demonstration. Indeed we found that most students did not download the M-file after viewing the presentation. Other early demonstrations did not require computation. For example Listen to Fourier Series requires only that the server deliver sound files—a relatively modest task. On the other hand, System Properties is fully interactive, with server computation on demand, and response time degrades rapidly as the number of users increases. When students in a large class have a homework assignment to explore properties of specified systems, the server overloads just before the due-date, causing another kind of loss of immediacy.

Our more recent demonstrations are Java applets that execute on the user’s machine. This solves the server burden problem, and Java provides the capability of actively involving the student, for example through using the mouse to draw signals or drag corner frequencies. Another benefit is that the user always works with the latest version of the demonstration, rather than a possibly outdated download, since the applet is not stored on the user’s machine. Thus Java appears to offer the best solution for our purposes, although Java raises additional issues that are discussed in more detail below.

Finally, our most recent activities involve adding audio in conjunction with the technical presentation on the screen and the interactive applet windows. This seems to be an effective way to suggest exercises or features to explore. See for example Joy of Convolution or Exploring the s-Plane. We also are trying a more comprehensive approach that presents more extensive technical development on the screen with Java applets and a number of audio clips, all integrated into a convenient user interface. See the Interactive Lecture Module on continuous-time LTI systems and convolution.


Because Java is an emerging technology, it presents a number of challenges. Its primary drawback is a relative lack of speed compared to traditional programming languages such as C and C++. Despite the fact that Java development systems are often called "Java compilers," Java is not a genuine compiled language—the "compilers" simply convert Java programs into a very compact, cross-platform bytecode that can be downloaded and interpreted by a Web browser. The advantage of this approach is that Java applets can be run on any machine with a Java-compatible browser (unlike C programs, for instance, which are compiled into a specific architecture’s machine code). Also, unlike server-side programs that run over the Web through the CGI interface, Java applets, once downloaded, run wholly on the client’s machine. However, the required bytecode interpretation can increase final execution time by several orders of magnitude.

Coupled with the speed issue is the fact that Java was designed to provide a simple, attractive interface to information on the Web, not to perform engineering computations. As a result, certain calculations are difficult to perform efficiently in Java programs. In Bode Servo Analysis, for example, we wanted to provide a plot of a control system’s output signal given a time-domain input signal and an open-loop transfer function specified by the user. To perform the calculations quickly in the Java environment, the cumbersome approach of fixing the transfer function order, passing coefficients to a fixed-form differential equation, and solving via a simple Runge-Kutta routine, was adopted.

Another burden has been the lack of built-in support for complex numbers. Although the majority of the calculations required for our demonstrations can be done in real terms, some complex calculations are unavoidable. The C++ language provides the ability to define new behaviors for standard operators (such as + and *) on programmer-defined types, but Java provides no such facility, and so much of our complex-number code resembles notational spaghetti.

Again, the underlying problem in these cases is that Java is a general-purpose programming language, not a scientific or engineering tool. Writing code to multiply complex numbers or compute a fast Fourier transform can be frustrating since this functionality is built into such engineering staples as MATLAB. However, a number of on-line and traditional sources provide ready-made C and C++ code for standard engineering calculations (Numerical Recipes in C is an excellent source), and converting programs from C into Java often takes only a few minutes. Presumably as Java becomes more widespread it will become increasingly easy to find pre-written technical code in the Java language.

The problem of Java execution speed will also ease in time. The advent of "just-in-time" compilers, which convert bytecode into machine code immediately before execution, will enable Java applets to run at speeds comparable to traditional software written in C. Furthermore, as personal computer hardware continues to improve, the relatively slow speed of Java applets may become less of an issue.

In developing the demonstrations, we found it useful to take advantage of the object-oriented "model-view" paradigm. In this system, the data underlying a particular object (the model) is decoupled from the code responsible for representing it graphically (the view). The demonstration SampleMania, for example, includes code dealing with a Java class for encapsulating a continuous-time signal. In this case, the model is an array of numbers representing the values of the signal at various times. Several different views were developed for this model: a standard time-domain plot of signal values, a modified time-domain plot to be used when the signal is sampled, and a plot of the magnitude spectrum. Each of these views displays the same data in different ways (the spectrum view, in particular, performs a great deal of additional processing). Clearly, a change in the underlying model should have an appropriate effect on all three of these views simultaneously.

Java facilitates this process through its "Observer" mechanism. Put simply, Java allows the developer to designate certain program objects as "Observables" and others as "Observers." An Observable object is told what its Observers are, and when it is modified, all of its Observers are automatically notified. In our example, a signal object is an Observable, and each of its views is set up as an Observer. When the user changes a signal, each view is informed of the change and can update itself accordingly. As a result of this mechanism, complex interactions among otherwise distinct pieces of code can be easily realized. This technique is particularly useful in creating signal processing and control systems demonstrations, as it is often useful to display the same information in several different ways (for example, as a table beside one or more graphs).

Overall, despite some current drawbacks, unique features of Java are well suited for the kind of demonstrations and exercises we wish to create. The fact that it was designed with interactivity in mind makes it easy to design powerful graphical interfaces for representing basic concepts, and its client-side architecture allows the incorporation of important but time-consuming calculations into the demonstrations without concern about server overload. As compilers and environments become more powerful, and as the language itself becomes more standardized and recognized, Java should become even more suitable for these purposes.

Usage Experiences

There are several options for using the demonstrations in conjunction with a lecture course. At Johns Hopkins we have been simply pointing out their availability at appropriate times, except for a homework exercise to run System Properties on systems assigned by student number. Anecdotal evidence is that many students make good use of the opportunity. For example while working on an assigned convolution problem, students will use Joy of Convolution to sketch in signals and explore a convolution graphically before beginning to work on the mathematical description of the result. As we develop more sophisticated applets, e.g. Bode Servo Analysis, and corresponding directed exercises, we plan to add the capability for students to submit assigned work.

We know that at some other universities the applets are presented in lecture using a laptop computer and projector. (One way to do this, is to access the applet, unplug the Internet connection, and carry the laptop into class without closing the browser.) However we have no experience with this approach.

An interesting option, at least in terms of efficiency, and possibly in terms of controversy, is to use Web material to replace classroom lecture. We have done this with the Interactive Lecture Module: Continuous-Time Linear Systems and Convolution. The discrete-time case was presented in class in the customary fashion, but the continuous-time case was left entirely to the Web (and the text). Again anecdotal evidence is that this is a good approach for presenting material that parallels lecture material. A worthy addition would be inclusion of a testing mechanism in the lecture module.

Such observations beg the important question of professional evaluation of the educational impact of these activities. Do the applets help students learn the concepts more rapidly and/or more deeply? Can interactive lecture modules supplant large amounts of lecture material? We are certainly convinced by anecdotal evidence that it is worthwhile to continue our development of applets to provide sufficient material for meaningful evaluation.

One educational impact that we believe does not need further study is that demonstration development is a meaningful and challenging independent-study project for undergraduate students. Each project requires basic understanding of the theoretical concept, computer skills in design of the demonstration and Java coding, and careful preparation of a clear, simple presentation.

As a final observation, based on server statistics, growth in the use of our demonstrations has been rapid. We estimate that in early 1998 our demonstrations attract several hundred "real usages" per week, from universities around the world.

The Vision Thing

It is fashionable to observe that new communication technologies in education have always met with opposition from the academy. Plato believed learning from books was inferior to dialogue, and monks in the Middle Ages thought hand copying morally superior to printing. However in today’s engineering education community there seems to be general enthusiasm about the Web, coupled with a healthy skepticism toward the hype. ("Will the unimaginable happen faster than we can imagine? Will the information age be followed by the knowledge age?") Evidence of a rapid increase in efforts to use the Web is apparent in many aspects of engineering education. Speculation on benefits to be gained and economies to be achieved is ubiquitous.

We offer only the very modest observation that it is difficult to predict the future course of efforts such as ours to develop ‘educational components.’ Issues of licensing and commercialization are complex, and the potential for collaborative reuse of components in comparison to the potential for duplication and wasteful competition is unclear. Also unclear are the roles of publishers and other commercial entities, as well as the role of federal support for this kind of activity.

Our plan is simply to continue exploration of concrete educational issues by focusing on Java applets and interactive modules for concepts in signals, systems, and control systems. Applets under construction, and that should be completed by mid-1998, include one on magnitude and phase spectra, a modification of Bode Servo Analysis to include time delay, and an applet on plant uncertainty models and robust stabilization. This latter applet is motivated by a belief that the availability of suitable demonstrations can facilitate the introduction of more advanced material in an undergraduate course.


WJR was inspired to begin this work upon seeing the Xmath Interactive Control Design Module developed by Stephen Boyd and Craig Barratt at Stanford University, hearing Karl Astrom speak about the program VISIDYN developed at Lund Institute of Technology, and discussing Web possibilities with Brad Lehman at Northeastern University. Major contributors to the work described in this paper are the current and former Johns Hopkins undergraduate and graduate students listed in the Appendix. We are grateful for the interest and support of Kishan Baheti, the National Science Foundation, and the Kenan Fund at Johns Hopkins.

1. D.M. Etter, C.R. Johnson, Jr., G.C. Orsak, "Experiences using the Internet and the WWW to facilitate remote teaming of students and faculty," Proceedings of the IEEE Conference on Decision and Control, San Diego, CA, p. 3805, 1997.

2. Y.C. Ho, W.B. Gong, C.G. Cassandras, J.Q. Hu, P. Vakili, "Experience with developing and dispensing research results and advanced course materials on the World Wide Web of the Internet," Proceedings of the IEEE Conference on Decision and Control, San Diego, CA, p. 3804, 1997.

3. J.E. Luntz, W.C. Messner, D.M. Tilbury, "Web technology for controls education," Proceedings of the IEEE Conference on Decision and Control, San Diego, CA, pp. 3798 - 3803, 1997.

4. B. Wittenmark, H. Haglund, M. Johansson, "Dynamic pictures and interactive learning," IEEE Control Systems Magazine, to appear.

5. Educational Object Economy, /

          6. Gamelan, /pages/


Appendix: Available Demonstrations (February, 1998)

Listen to Fourier Series Sound is used to introduce basic notions of Fourier series, including harmonic content and filtering. To run this demonstration you should have at least the equivalent of a 386 PC with a sound card and either a ~.wav file player or a ~.ra player. (Prepared by Kevin Rosenbaum.)

Harmonic Phasors and Fourier Series This demonstration uses rotating vectors in the complex plane (phasors) to illustrate basic characteristics of Fourier series, including convergence properties, Gibbs effect, and windowing. It is based on ideas from the 1971 movie Harmonic Phasors II, by William H. Huggins at Johns Hopkins. To run this demonstration you should have at least the equivalent of a 486 PC with an ~.mpeg file player. Included is a downloadable M-file for execution on MATLAB. This permits further, interactive exploration of additional examples, and user-created Fourier series. To run the M-file you will need at least the Student Edition of MATLAB. (Prepared by Nabeel Azar.)

Magnitude and Phase Spectra This demonstration presents basic properties of the frequency spectrum of a signal, including the effect of various operations in the time domain and in the frequency domain. Included is a downloadable M-file for execution on PC-MATLAB. This permits further, interactive exploration of frequency characteristics of signals using a "spreadsheet" format. To run the M-file you will need at least the Student Edition of MATLAB, PC version. (Prepared by Christopher Hocker.)

System Properties This demonstration invites the user to apply test input signals to a selected, unknown system - either continuous time or discrete time - in order to determine whether the system is linear, time invariant, causal, stable, and memoryless. A color monitor is recommended. (Prepared by Raman Venkataramani.)

Fourier Series Approximation A Java applet that displays Fourier series approximations and corresponding magnitude and phase spectra of a periodic signal. You can select from provided signals, or draw a signal with the mouse. (Prepared by Steve Crutchfield.)

Joy of Convolution A Java applet that enables the user to perform graphical convolution on the screen. You can select from provided signals, or draw a signal with the mouse. (Prepared by Steve Crutchfield.)

Joy of Convolution (Discrete Time) A Java applet that allows you to perform graphical convolution of discrete-time signals on the screen. You can select from provided signals, or draw a signal with the mouse. Includes an audio introduction with suggested exercises. (Prepared by Steve Crutchfield.)

SampleMania A Java applet that permits the investigation of signal sampling at various sampling frequencies, and signal reconstruction from samples using various low-pass filter cutoff frequencies. You can select from provided signals, or draw a signal with the mouse. (Prepared by Steve Crutchfield.)

Bode Servo Analysis A Java applet for basic frequency analysis of control systems. Drag open-loop corner frequencies on the Bode plot with the mouse to improve tracking performance and reject sensor noise in a unity-feedback system. (Prepared by Steve Crutchfield.)

Exploring the s-Plane A Java applet where the user can drag poles and zeros around the s-plane and observe changes in the unit-step response of the corresponding linear system. Includes an audio introduction with suggestions. (Prepared by Brian Woo.)

Interactive Lecture Module: LTI Systems and Convolution A combination of Java Script, RealAudio, Java applets, and technical material on the screen -- intended to produce an effective learning environment. Used at Johns Hopkins as a complement to classroom lectures on the discrete-time case. (Applets by Steve Crutchfield, interface design by Mark Nesky.)