------------------------------------------------------------------------

VERSION 101				  [Tue Oct 26 22:28:38 CDT 1999]


* TERMINOLOGY: We decided to eliminate the terminology "teaching
  library", because it is easily confused with a plain library. As of
  release 101, we refer to one of these objects as a

    teachpack

* USAGE: Inside of DrScheme, the menu choice called "Language|Set
  library to..."  is now called "Language|Set teachpack to...".

* LOCATION of Files: The distributed teachpacks are found at

    $PLTHOME/teachpack/
    PLTHOME is the location of the PLT software

  The htdp subdirectory contains those files that matter to students who
  use HtDP. 

* CHANGES in individual teachpacks: The most important and most visible
  change in the teachpack support concerns

    hangman.ss 

  It now provides two GUI interfaces: (1) hangman for three-letter words
  and (2) hangman-list for words of arbitrary length. See the teachpack
  documentation for details. 

  The teachpack 

    master.ss

  now exports the procedure _master_, which is exactly like the procedure
  _repl_ in the old master-lib.ss library. 

  The corresponding exercises in HtDP have been rewritten and are posted
  on the HtDP Web site.

* REMINDER: The *purpose* of teachpacks is to supplement student programs
  with code that is beyond the teaching languages (Beginner, Intermediate,
  Advanced). For example, to enable students to play hangman, we supply a
  teachpack that 
    - implements the random choosing of a word 
    - maintains the state variable of how many guesses have gone wrong 
    - manages the GUI. 
  All these tasks are beyond students in the third week and/or impose
  nothing memorization of currently useless knowledge on students. 

  A teachpack is a signed unit that imports the interface:   

    plt:userspace^

  The exported names are added to the read-eval-print loop at the end of
  an EXECUTE step.

------------------------------------------------------------------------

Version 100

The plt:userspace^ signature does not contain the
graphics library. In order to use the graphics library in your
teachpacks, use a compound unit and link in graphics directly. For example:

  (require-library "graphics.ss" "graphics")
  
  (define-signature my-teachpack^ (four))
  
  (define my-teachpack
    (unit/sig my-teachpack^
      
      (import plt:userspace^ 
              graphics^)
      
      '...
      
      (define four 4)))
  
  (compound-unit/sig 
   (import [P : plt:userspace^])
   (link [G : graphics^ ((require-library "graphicr.ss" "graphics")
                         (P : mzlib:file^)
                         (P : mred^))]
         [TP : my-teachpack^ (my-teachpack P G)])
   (export (open TP)))

The graphics^ signature contains all of the primitives in the
graphic.ss library. Search for "graphics" in Help Desk for more
information on those primitives.
