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:
 | 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.)
|
 | Appropriate use of animation and sound. Animation and sound are to be
incorporated into the hypertextbook where appropriate for teaching and learning.
|
 | 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
 | 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.
|
 | 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.
|
 | 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.
|
 | 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!
|