<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>

<head>
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
<title>Help for the Teaching Machine</title>
<base target="content">
</head>

<body TEXT="#000000" BGCOLOR="#FFFFFF">

<h1>Help for the Teaching Machine.</h1>

<h2>Loading programs.</h2>

<ul>
  <li><b>Applet.</b> The usual way of changing programs is to load the web page that describes
    the program. </li>
  <li><b>Application.</b> The menu commands <b>Load C++ File</b> and <b>Load Java File</b> may
    be used.</li>
</ul>

<h2>Commands to specific subwindows.</h2>

<p><b>Source Code Subwindow</b> 

<dl>
  <dd><img SRC="stepOver.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Execute the
    next expression in this subroutine. <p><img SRC="stepInto.gif" WIDTH="18" HEIGHT="18"
    ALIGN="BOTTOM" BORDER="0"> Execute the next expression.</p>
    <p><img SRC="stepOut.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Execute to the
    end of this subroutine.</p>
    <p><img SRC="ToCursor.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Execute until
    the line the cursor is on or until the program terminates.</p>
    <p><img SRC="ReStart.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Restart the
    program.</p>
  </dd>
</dl>

<p><b>Expression Engine Subwindow</b> 

<dl>
  <dd><img SRC="Advance.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Execute one
    step. <p><img SRC="Backup.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Undo last
    command.. </p>
  </dd>
</dl>

<p><b>Stack, Static, Heap, and Scratch Subwindows</b> 

<dl>
  <dd><img SRC="Logical.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Display one
    line per variable.. <p><img SRC="Scaled.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM"
    BORDER="0"> Display one line per byte.</p>
    <p><img SRC="Binary.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Display values
    in hexadecimal. </p>
  </dd>
</dl>

<p><b>Box &amp; Arrow View Subwindow</b> 

<dl>
  <dd><img SRC="Stack.gif" WIDTH="20" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"> Display stack
    variables along left border. <p><img SRC="Static.gif" WIDTH="20" HEIGHT="20"
    ALIGN="BOTTOM" BORDER="0"> Display static variables along the left border. </p>
  </dd>
</dl>

<h2>Window manipulation.</h2>

<p>All subwindows can be moved, resized, or brought to the front, though it sometimes
takes a few tries to get the mouse in just the right spot.</p>

<p>All subwindows can be maximized, minimized, or closed. Once closed, they are gone until
a file is opened.</p>

<h2>Exiting the teaching machine.</h2>

<p>If you are running the Teaching Machine as an applet, do not try to exit it by clicking
on the x in the upper right corner. 

<ul>
  <li><b>Internet Explorer. </b>When you leave the web page that initiated the Teaching
    Machine Applet, the applet will be terminated. </li>
  <li><b>Netscape Navigator.</b> When the page that initiated the Teaching Machine Applet, is
    no longer on Navigator's Forward-Backward stack, the applet will be terminated. </li>
  <li><b>Application.</b> The usual Exit menu item, will terminate the application, as will
    the x in the top right corner (in MS Windows). </li>
</ul>

<h2>Security restrictions.</h2>

<p>If you ask the applet to do something that, because of a security restriction, it can
not do, a window will pop up to tell you so. Typically you may not exit (exiting would
shut down your web browser, which, while not a security problem, is annoying) nor load a
local file.</p>

<h2>Trouble Shooting.</h2>

<p>Unfortunately the Java slogan of write-once, run-anywhere remains an unattained ideal.
Here are some of the problems we know about. 

<ul>
  <li><strong>Windows Go Blank.</strong> <p>If windows within the Teaching Machine become
    blank, when they are brought to the forground, you may need upgrade your Java system. We
    have only seen this problem under Windows NT with Internet Explorer 4.0. To get latest
    version of Java from Microsoft (as of Sept. 99) <a
    HREF="http://download.microsoft.com/download/javasdk/install/3186/w9xnt4/en-us/msjavx86.exe">click
    here</a>. Microsoft URLs seem to change quite often, so if that doesn't work, search
    Microsoft's web sites using keywords like &quot;microsoft virtual machine&quot;, which is
    what they now call their Java virtual machine.</p>
    <p>For further motivation to upgrade your VM read this <a
    href="http://www.microsoft.com/Security/Bulletins/ms99-031.asp">security bulletin</a>. </p>
    <p>I can offer no guarrantee that anything from Microsoft will work. The first time I ran
    this installer it wiped out my Java system, but the second time it worked fine. </p>
  </li>
  <li><strong>It's Slow As Molasses.</strong> <p>Under Netscape and Windows, loading a file
    can take up to a minute. We have no idea why. The best advice we have is to get Internet
    Explorer 5.0 --- or Linux.</p>
    <p>If you are using Internet Explorer and it's slow, make sure that you have enabled JIT
    (Just in Time Compilation). Not using JIT adds significant overhead to interpreting the
    Java. </p>
  </li>
  <li><strong>The Teaching Machine Doesn't Start At All.</strong> <p>Make sure that you are
    using at least Internet Explorer 4.0 or Netscape Navigator (or Communicator) 4.08. Make
    sure that Java is enabled. Also make sure you give the Teaching Machine enough time to
    download. </p>
  </li>
</ul>

<h2>The Language Accepted by the Teaching Machine</h2>

<p>This release supports only C++, and then only a subset of C++, so your perfectly
valid C++ program may cause the Teaching Machine to complain.</p>
<p>Furthermore, the Teaching Machine makes only the spottiest attempt to certify that
your code is valid C++ before executing it. We recommend compiling all examples,
with a real compiler, prior to running them on the Teaching Machine.</p>
<p>There is no good documentation of the supported subset yet. However a description
of the syntax accepted by the parser is available in EBNF form 
<a HREF="cplusplus.html">here</a>.</p>

<h2>Bugs and wishes</h2>
<p>
A list of known bugs and suggested improvments for the current version of the
teaching machine is listed <a HREF="http://www.engr.mun.ca/~theo/TM/wish-list-bug-list.html">here</a>.
</p>
<p>
Send reports of bugs and suggested improvements
to <a HREF="mailto:theo@engr.mun.ca">theo@engr.mun.ca</a>.
</p>
</body>
</html>
