Theory Book
Home Up

 

 

A Theory Hypertextbook

presenting the animation of the theory of computing in

Snapshots of the Theory of Computing

the pet project of the Director of the

Webworks Laboratory

 

Tying it all together

The various sub projects of the Webworks Laboratory aimed at computer science are all fun and useful in their own rights.  Finite state automaton animators, context free grammar animators, program animators, and others like them are great projects.  But to really showcase them requires that they be integrated into a "seamless" presentation, a hypertextbook.

The Craftsman

Rocky Ross, the project director, has taken this project on as his own.  Of course, it would not be possible without the significant contributions of the members of the Webworks team, who are constructing the animations modules upon which the hypertextbook depends.  Called Snapshots of the Theory of Computing (or just Snapshots for short), this book will demonstrate that web-based hypertextbooks work.

Features

Since Snapshots is now just in a "proof of concept" stage, it has few features that one could identify as permanent.  However, the goals are the following:

bullet
Platform independence.  Snapshots should be platform independent.   This means that nothing but a standard Java-enabled browser should be required for its use.  (Note that this even precludes the use of most plugins, which are not necessarily universal.)
bullet
Appropriate use of animation and sound.  Animation and sound are to be incorporated into the hypertextbook where appropriate for teaching and learning.
bullet
Interactivity.  Active learning on the part of the user is to be encouraged through interactive animations of key concepts.

Hurdles

There are a few obstacles remaining in the path to a successful realization of Snapshots.   Each obstacle has an impending solution.  As the solutions become available, Snapshots will realize its potential.  The main hurdles are

bullet
Seamless integration of animations and text.  Incorporation of animations directly in the text of the book so that they do not need to be invoked by clicking a button is important to the "look and feel" of the book.  There is no great technical problem with doing this, but it does require that the animation applets be designed for this purpose. 
bullet
Saving animations.  Until very recently, browsers and the Java Virtual Machine environment did not allow an applet to save anything to a local disk.  The fear was that an external applet could wreak havoc on a local hard drive.  These security concerns have apparently been handled.  The latest releases of the JVM allow an applet to save to a local disk.  Thus, it is now possible to have a student construct, say, a finite state automaton as an exercise using the fsa animator and then save the fsa to disk for later modification and/or animation by the student or the instructor.  It should now even be possible to have a student submit such a creation electronically to the instructor for evaluation.  The required modifications to the Webworks animators are now in progress.
bullet
Fonts.  In order to create a work as ambitious as Snapshots, an author must have access to a large symbol font for expressing mathematics.  Of course, this means that browsers must also be able to display such fonts regardless of the platform on which they run.  MathML is the solution.  It is a standardized markup language for expressing mathematics.  Some plugins can render MathML at present, and it is expected that browsers will incorporate the rendering of MathML inherently.  For now, Snapshots makes minimal use of the Microsoft mathematical symbol set.  Note that unless your browser is running on a Microsoft operating system, the symbols may not be displayed properly.  For example, if the following line makes no sense on your browser, elements of Snapshots will not display properly either.
A finite state automaton (fsa) is a five-tuple, M = (Q, S, d, q0, F), where Q is a finite set of states, S is a finite input alphabet, d is a transition function, d: Q ´ S ® Q, q0 Î Q is the starting state, and F--a subset of Q--is a set of accepting states.
In proceeding with Snapshots the team will use MathML plugins until MathML rendering becomes a standard capability of browsers.
bullet
Styles.  Sometimes an author may realize that a book is best presented in a particular fashion.  Indeed it may be the case that for some audiences one style of presentation is better than for other audiences.  Different style requirements for different situations do not actually represent an obstacle for a work like Snapshots, because the work can be done in a single style.  Still, it is fun to contemplate the issues involved.  Solutions are forthcoming in the form of XML and cascading style sheets.

 

Try It

To explore a very preliminary version of Snapshots, just click here for an older version of Snapshots that does not require the latest versions of the jdk.  Or, click here for a version with a more recent finite state automaton animator that requires jdk 1.3.  Remember it is the beginning of a work in progress.  So be sure to come back later and try it again!